2013-11-27 14 views
5

Tôi đang chạy Hadoop-1.2.1 và HBase-0.94.11 ở chế độ phân tán giả.ZooKeeper tồn tại không thành công sau 3 lần thử lại

Do mất điện Hadoop và HBase lập đi down.Next thời gian khi tôi khởi động lại máy tính của tôi và giả phân phối thiết lập, HBase ngừng làm việc với các lỗi sau đây trên HBase shell:

13/11/27 13:53:27 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries 
13/11/27 13:53:27 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode (/hbase/hbaseid) 
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid 
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) 
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) 
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) 
    at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:172) 
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:450) 
    at org.apache.hadoop.hbase.zookeeper.ClusterId.readClusterIdZNode(ClusterId.java:61) 
    at org.apache.hadoop.hbase.zookeeper.ClusterId.getId(ClusterId.java:50) 
    at org.apache.hadoop.hbase.zookeeper.ClusterId.hasId(ClusterId.java:44) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.ensureZookeeperTrackers(HConnectionManager.java:720) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:789) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:129) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 

Tiếp theo là các quy trình:

[email protected]:~$ jps 
16914 NameNode 
19955 Jps 
29460 Main 
17728 TaskTracker 
19776 HMaster 
17490 JobTracker 
17392 SecondaryNameNode 

Trả lời

1

Bạn có chắc chắn quá trình Zookeeper của bạn đang chạy (danh sách jps của bạn không hiển thị mục nhập cho QuorumPeerMain) không? Ngăn xếp jps có thể không hiển thị tất cả các tiến trình java đang chạy - hãy thử sử dụng một số ps axww | grep QuorumPeerMain.

Nếu Zookeeper của bạn từ chối khởi động, kiểm tra các bản ghi của nó để xem nếu có một số manh mối stack trace

+0

tôi chạy lệnh và dưới đây là kết quả: hduser @ sử dụng ubuntu: ~ $ ps axww | grep QuorumPeerMain 15527 pts/2 S + 0:00 grep --color = auto QuorumPeerMain –

+0

Vì vậy, zookeeper không chạy (mà grep match là grep cmd chính nó) - tôi đề nghị bạn ngừng các dịch vụ cluster của bạn, bắt đầu zookeeper, phần còn lại các dịch vụ hadoop và hbase –

+1

Làm thế nào để khởi động lại 'Zookeeper' một lần nữa? – Manwal

0

Nó đơn giản quá trình quorum Zookeeper không chạy - nếu nó đã được, có muốn đã khác quá trình java :

[email protected]:~$ jps 
16914 NameNode 
19955 Jps 
29460 Main 
17728 TaskTracker 
19776 HMaster 
17490 JobTracker 
17392 SecondaryNameNode 

xxxxx HQuorumPeer

Zookeeper là cần thiết cho cụm HBase - như nó quản lý nó.


giải pháp có thể: Theo mặc định HBase quản lý Zookeeper bản thân tức là khởi động và dừng các đại biểu Zookeeper (cụm các nút Zookeeper) - để xác minh các thiết lập nhìn vào file conf/hbase-evn.sh (trong thư mục hbase của bạn) phải có một dòng:

export HBASE_MANAGES_ZK=true 

Về cơ bản, hãy cho biết liệu có nên quản lý trường hợp riêng của Zookeeper hay không. Trong trường hợp được đặt thành false, hãy chỉnh sửa thành true.

Cũng xác minh conf HBase tại conf/hbase-site.xml,

Các conf tối thiểu mà nên làm việc cho chế độ pseudo-phân phối là:

<configuration> 
<property> 
    <name>hbase.cluster.distributed</name> 
    <value>true</value> 
</property> 
<property> 
    <name>hbase.rootdir</name> 
    <value>hdfs://localhost:9000/hbase</value> 
    </property> 
    <property> 
    <name>hbase.zookeeper.property.dataDir</name> 
    <value>/home/<yourusername>/zookeeper</value> 
    </property> 
</configuration> 

Bây giờ ngừng HBase, nếu nó được chạy:

$ ./bin/stop-hbase.sh 

thực hiện các thay đổi cần thiết và bắt đầu lại:

$ ./bin/start-hbase.sh 

Answers bạn có thể thấy hữu ích: 12

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