Подтвердить что ты не робот

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

Мои конфигурации:

  • Добавлен JAVA_HOME в hbase-env.sh
  • hbase_site.xml

    <name>hbase.rootdir</name>
    
    <value>file:///home/hadoop/data</value>
    

    <name>hbase.zookeeper.property.dataDir</name>
    
    <value>file:///home/hadoop/zookeeper</value>
    

Я попытался изменить /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'

Спасибо заранее!

4b9b3361

Ответ 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>

Ответ 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