2012-06-07 38 views
8

Có ai biết hướng dẫn về cách HBase có thể chạy trên Windows dưới Cygwin không?HBase 0.92 Độc lập trên Windows với Cygwin

tôi quản lý để thiết lập tất cả mọi thứ như các phím để tự động đăng nhập với SSH nhưng Im mắc kẹt với thông báo lỗi sau:

localhost: +======================================================================+ 
localhost: |  Error: JAVA_HOME is not set and Java could not be found   | 
localhost: +----------------------------------------------------------------------+ 
localhost: | Please download the latest Sun JDK from the Sun Java web site  | 
localhost: |  > http://java.sun.com/javase/downloads/ <      | 
localhost: |                  | 
localhost: | HBase requires Java 1.6 or later.         | 
localhost: | NOTE: This script will find Sun Java whether you install using the | 
localhost: |  binary or the RPM based installer.        | 
localhost: +======================================================================+ 

...

java.lang.NoClassDefFoundError: org/apache/zookeeper/KeeperException 
     at java.lang.Class.getDeclaredMethods0(Native Method) 
     at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
     at java.lang.Class.getMethod0(Unknown Source) 
     at java.lang.Class.getMethod(Unknown Source) 
     at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.KeeperException 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 

tôi đã được thiết lập để chỉ .bash_profile đến:

export JAVA_HOME='/usr/lib/jre1.6.1' 

là liên kết tượng trưng trên jre thực

/usr/lib/jre1.6.1 -> /cygdrive/c/Java/jre7/ 
+0

Bạn có nhận được bất kỳ đầu ra nào cho "java -version" không? – Kiran

+0

Có - hoạt động! –

Trả lời

0

EDIT:

Lỗi đầu tiên trông giống như Java không được tìm thấy, nhưng lỗi thứ hai đang đến rõ ràng từ Java, vì vậy sự kết hợp của hai lỗi này là hơi khó hiểu. Bạn có chắc chắn rằng cả hai đều được sản xuất bởi cùng một kịch bản cùng một lúc?

Lỗi thứ hai là do không có tệp jar của vườn thú trên đường dẫn lớp. Hãy thử sửa đổi kịch bản hoặc sao chép jar vào thư mục hadoop lib.

+0

Đây là chế độ độc lập - không có người dùng HBase –

+0

Làm thế nào bạn nhận được lỗi không tìm thấy lớp nếu không tìm thấy Java? Lỗi JAVA_HOME có cũ không? –

+0

hbase-config.sh được gọi khi khởi động với ./start-hbase - hbase-config tạo đầu ra đó –

1

Sử dụng máy ảo để chạy Hadoop trong môi trường Linux. Với Java, bạn có thể phải đối mặt với các vấn đề điển hình dưới cửa sổ, thêm Cygwin để trộn cho biết thêm một bộ khác cả, ví dụ:

Đối với mục đích hướng dẫn, tôi khuyên các Cloudera bản demo VM và hướng dẫn: https://ccp.cloudera.com/display/SUPPORT/Cloudera%27s+Hadoop+Demo+VM

https://ccp.cloudera.com/display/SUPPORT/Hadoop+Tutorial#HadoopTutorial-Purpose

+0

Cảm ơn nhận xét - Tôi đã có HBase/Hadoop chạy trên Linux và trên máy ảo. Thực tế cho việc phát triển tôi sử dụng máy ảo cục bộ. Tôi chỉ muốn loại bỏ lớp phụ của máy ảo. –

4

Đối JAVA_HOME lỗi, bạn có thể sửa chữa nó bằng cách thiết lập JAVA_HOME trong hbase\conf\hbase-env.sh.

Đối với ngoại lệ không tìm thấy lớp học, hãy thử thêm hbase\lib vào HBASE_CLASSPATH trong cùng một tệp.

Cá nhân, tôi sử dụng hai dòng sau đây trong hbase-env.sh của tôi trên Windows 7 Môi trường + Cygwin:

export JAVA_HOME=/cygdrive/c/Program\ Files/Java/jdk1.7.0/ 

export HBASE_CLASSPATH=/cygdrive/c/programs/hbase-0.92.1/lib/ 
+2

Có vấn đề tương tự (win7 với Cygwin), và điều này cố định nó. Không có lỗi CP cho đến nay. – gbegley

5

tôi đã cùng một vấn đề và tôi tìm thấy sau: Cygwin sử dụng ":" như một dấu phân cách đường . Nhưng tập lệnh tạo CLASS_PATH hoạt động không chính xác. CLASS_PATH cuối cùng trông giống như "...: zookeeper.jar:" with ":" ở cuối. Trước khi chạy tập lệnh java chuyển đổi CLASS_PATH thành kiểu Windows. Nhưng với ":" ở cuối !!

Vì vậy, giải pháp của tôi là: chỉ cần tạo tệp trống "zzz.jar" dưới hbase/lib. zzz.jar sẽ là lần cuối cùng trong CLASS_PATH và zookeeper.jar sẽ được thêm vào CLASS_PATH một cách chính xác.

Tôi biết nó là tốt hơn để sửa chữa kịch bản, nhưng tôi những người quan tâm :) Tôi cần HBase cho chỉ có 2 ngày, vì vậy nó hoạt động và tôi hạnh phúc :)

+0

Cảm ơn bạn rất nhiều! HBase 0.94.7 làm việc tốt cho tôi trong Cygwin, tôi chỉ cần đặt HBASE_CLASSPATH vào thư mục lib như đã đề cập trong câu trả lời của Hisham. Tuy nhiên, khi tôi quay trở lại với nó sau này gần đây ở mức 0,94,16 mà sửa chữa không còn có vẻ làm việc, nhưng zzz.jar của bạn đã làm các trick đẹp. –

+0

cảm ơn bạn rất nhiều! đây là điều! – Thomas

0

hbase_classpath không cần, chỉ cần thay đổi zookeeper.jar tới azookeeper.jar

Các vấn đề liên quan