2013-11-27 2 views
5

Я запускаю Hadoop-1.2.1 и HBase-0.94.11 в псевдораспределенном режиме.ZooKeeper существует сбой после 3 попыток

Из-за сбоя питания Hadoop и HBase установить пошел down.Next время, когда я перезагрузил мою машину и псевдо-распределения установить, HBase перестал работать со следующими ошибками на HBase оболочки:

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) 

Следуя являются процессы:

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

ответ

1

вы уверены, что ваш процесс Zookeeper работает (ваш JPS листинг не показывает запись для QuorumPeerMain)? Стек jps может не показывать все запущенные java-процессы - попробуйте использовать ps axww | grep QuorumPeerMain.

Если Zookeeper не запускается, то проверить свои журналы, чтобы увидеть, если есть некоторые трассировки стека ключи

+0

я выполнил команду и ниже вывод: hduser @ пользователем убунту: ~ $ пс axww | grep QuorumPeerMain 15527 pts/2 S + 0:00 grep --color = auto QuorumPeerMain –

+0

Так что zookeeper не работает (это совпадение grep - это сам grep cmd) - я предлагаю вам остановить службы кластера, запустить zookeeper, остальные hadoop и hbase услуги –

+1

Как перезапустить 'Zookeeper' снова? – Manwal

0

Это просто процесс кворума зоопарка не работает - если он был, то был бы другой процесс Java :

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

xxxxx HQuorumPeer

Zookeeper требуется для HBase кластера - как управляет им.


Возможные решения: По умолчанию HBase управляет сам, т.е. зоопарка запуска и остановки Zookeeper кворума (кластер Zookeeper узлов) - для проверки настроек смотрите в файл Conf/hbase-evn.sh (в каталоге Hbase) должна быть строка:

export HBASE_MANAGES_ZK=true 

в основном говорит HBase, должен ли он управлять свой экземпляр Zookeeper или нет. В случае, если оно установлено на false, отредактируйте его до true.

Также проверьте конф Hbase на conf/hbase-site.xml,

Минимальный конф, который должен работать в режиме псевдо-распределенных является:

<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> 

Теперь остановить HBase, если он был запущен:

$ ./bin/stop-hbase.sh 

внести необходимые изменения и заново запустить его:

$ ./bin/start-hbase.sh 

Ответы могут быть вам полезны: 12

Смежные вопросы