HBase автономно не удалось подключиться (не удалось создать таблицу)
Я пытаюсь развернуть Hbase в автономном режиме после этой статьи: http://hbase.apache.org/book.html#quickstart. Версия 0.92.1-cdh4.1.2
Но я получаю эти ошибки при попытке создать таблицу:
Сообщение об ошибке:
13/04/01 14:07:10 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/04/01 14:07:10 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode /hbase/master
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
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:1021)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:154)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)
at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:82)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:580)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:569)
Журнал вывода:
13/04/01 14:06:39 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
13/04/01 14:06:39 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is [email protected]
13/04/01 14:06:39 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
13/04/01 14:06:39 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
13/04/01 14:06:39 WARN zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
Мои конфигурации:
Я попытался изменить /etc/hosts, который выглядит так (oracle - имя хоста):
127.0.0.1 localhost oracle
или
[server ip] localhost oracle
Но это не работает для меня.
Мои точные коды:
[[email protected] bin]$ ./start-hbase.sh
starting master, logging to /home/hadoop/hbase-0.94.6/bin/../logs/hbase-usr-master-oracle.out
[[email protected] bin]$ hbase shell
13/04/01 14:57:55 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.92.1-cdh4.1.2, rUnknown, Thu Nov 1 18:02:07 PDT 2012
hbase(main):001:0> create 'test','cf'
Спасибо заранее!
Ответы
Ответ 1
Похоже, что в вашей конфигурации отсутствует hbase.zookeeper.quorum
.
Пожалуйста, ознакомьтесь с этой главой руководства HBase, это может помочь: http://hbase.apache.org/book/zookeeper.html
Также проверьте, что zookeeper запущен на правом порту и (что чаще всего происходит) правильные IP-интерфейсы.
Ответ 2
Я не уверен, что вы на Mac, но у меня тоже была эта проблема. Оказывается, это произошло потому, что файл .DS_STORE находился в папке -ROOT-region сервера и вызывал исключение подключения. Очень странно!
Ответ 3
Что-то может быть связано с вашей конфигурацией. Сначала я загружаю HBase tar (http://hbase.apache.org/book/quickstart.html) для запуска HBase. Я не следил за ссылкой, чтобы выполнить какую-либо конфигурацию, просто загрузите, запустите HBase, запустите "HBase shell". Но при создании таблицы это дало мне ошибку, как вы упомянули. И затем, я ищу установку HBase на Mac, так как я использую Mac. Я использую "brew install hbase" для установки HBase (http://chase-seibert.github.io/blog/2013/02/01/getting-starting-with-hbase-and-pig.html). После завершения установки я заново создаю таблицу. Успех.
Поэтому повторите свою ошибку, она должна быть связана с вашим JAVA_HOME или другими конфигурациями на HBase. Поиск ответа с этого пути может помочь вам.
Ответ 4
остановите hbase с помощью stop-hbase.sh, найдите в своей папке zookeeper и освободите содержимое папки. затем перезапустите оболочку hbase и hbase. который решил проблему для меня
Ответ 5
Я также столкнулся с этой проблемой при настройке hbase. Через пару минут я понял, что забыл запустить hbase, выполнив следующую команду:
hbase-1.1.2/bin/start-hbase.sh
После выполнения этой команды оболочка hbase работала отлично.
Ответ 6
Кажется, есть некоторая ошибка в hbase-site.xml
conf. Согласно быстрому старту document, автономному HBase hbase-site.xml
должно понравиться следующее:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/testuser/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/testuser/zookeeper</value>
</property>
</configuration>
И нет конфигурации file://
в Zookeeper. И позаботьтесь о том, что вам не удалось запустить HBase, вам нужно удалить файлы, в которые вы храните hbase и zookeeper. В соответствии с приведенной выше конфигурацией вы должны удалить все файлы под /home/testuser/hbase
и /home/testuser/zookeeper
. И попробуйте проверить информацию об ошибке журнала. Я исправил эту ошибку, когда у меня есть правильный conf и добавьте переменную JAVA_HOME
в hbase-env.sh
.
Ответ 7
В HBase 1.2.3 у меня почти такая же ошибка: "ZooKeeper существует сбой после 4 попыток" в автономном режиме. Это было вызвано запуском. /start -hbase.sh без разрешения подключиться к порту 2181. Решение оказалось очень простым:
sudo ./start-hbase.sh
На всякий случай, конфигурация hbase-site.xml:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/hadoop/HBase/HFiles</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
</configuration>
Ответ 8
Изменить файл /etc/hosts...
во второй строке измените 127.0.1.1 до 127.0.0.1, затем запустите Hbase... он должен работать нормально.
Если не работает... попробуйте шаги по этой ссылке
http://lets-do-something-big.blogspot.in/2014/01/hbase-installation-on-ubuntu-lubuntu.html
Ответ 9
У меня тоже была такая же проблема. Установите владельца и группу правильно в обеих папках hbase.rootdir и hbase.zookeeper.property.dataDir.Give 755 разрешение на обе папки.
sudo chown -R hadoop_user:hadoop_user_group home/hadoop/data
sudo chmod -R 755 home/hadoop/data
Ответ 10
Ошибка " ОШИБКА zookeeper.RecoverableZooKeeper: ZooKeeper существует сбой после 3 повторных попыток", скорее всего, указывает, что у вас нет zookeeper
. - Перед тем как взглянуть на оболочку HBase, вы можете проверить, является ли кворум Zookeeper вверх, используя:
$ jps
команда отобразит все java-процессы на машине, то есть вероятный вывод должен быть - для автономной настройки HBase, которую вы пытаетесь настроить (игнорируйте числа в левом столбце i.e. pid):
62019 Jps
61098 HMaster
61233 HRegionServer
61003 HQuorumPeer
Если ваш вывод не имеет значения HQuorumPeer
- указывает, что zookeeper не работает.
Zookeeper требуется для кластера HBase - поскольку он управляет им.
Решение
В вашем каталоге HBase сначала остановите HBase:
$ ./bin/stop-hbase.sh
Если вы пытаетесь выработать пример "автономного HBase" - придерживайтесь минимального conf, приведенного в примере:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/adio/workspace/hadoop/hbase/directories/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/adio/workspace/hadoop/hbase/directories/zookeeper</value>
</property>
</configuration>
то есть. ваш conf/hbase-site.xml
должен иметь вышеуказанный контент.
После установки снова запустите HBase:
$ ./bin/start-hbase.sh
P.S., если любой из этих шагов по-прежнему не устранен, оставите проблему в разделе комментариев.
Несколько релевантных ответов: 1 2 3
Ответ 11
Проблема заключается в 'hbase-site.xml' под свойством hbase.zookeeper.property.dataDir '
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/lib/hbase/zookeeperdata</value>
</property>
Примечание. В этом пути задается путь в файловой системе < LOCAL.
Нам нужно только указать каталог в локальной файловой системе, где HBase и ZooKeeper записывают данные.
Например, в этом случае после выполнения
1) start-hbase.sh
2) Команда оболочки hbase
Перейдите к пути (в моем случае /usr/lib/hbase/zookeeperdata ), где вы увидите файл с именем myid.
Подведение итогов проверки
1) При выполнении jps следующие действия должны выполняться
HQuorumPeer, ResourceManager, HMaster, NameNode, Main, HRegionServer, SecondaryNameNode, DataNode, Jps, NodeManager
2) В hbase-site.xml для свойства 'hbase.zookeeper.property.dataDir' путь должен быть установлен на локальный путь, то есть папка должна быть локально присутствующей.
3) После выполнения команды start-hbase.sh и hbase shell → Переход к пути, указанному в hbase.zookeeper.property.dataDir(в моем примере путь:/usr/lib/hbase/zookeeperdata), a файл с именем myid должен присутствовать.
Ответ 12
(1) Просто запустите ./$HBASE_HOME/bin/start-habse.sh
, ниже исключение исчезнет.
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:1045)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:221)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:419)
at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:65)
at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:105)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:905)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:648)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
- List item