HBase не запускается в режиме кластера с одним узлом на Mac OSX


Я пытаюсь настроить личную среду разработки HBase. У меня есть hdfs и yarn, но не могу запустить HBase.

Я запустил hadoop 2.7.1, запустив start-dfs.sh и еще start-yarn.sh. я проверил, что они работают, Протестировав hdfs dfs-mkdir / test и запустив образец задания MR в комплекте с примерами, я просмотрел HDFS на порту 50070.

Я запустил zookeeper 3.4.6 на порт 2181 и установил его dataDir. Мой зоопарк.cfg имеет:

dataDir=/Users/.../tools/hd/zookeeper_data
clientPort=2181

I понаблюдайте за его zookeeper_server.PID-файл в dataDir я выбрал, и когда я запускаю jps, я вижу следующее:

51074 NodeManager
50743 DataNode
50983 ResourceManager
50856 SecondaryNameNode
57848 QuorumPeerMain
58731 Jps
50653 NameNode

QuorumPeerMain выше соответствует PID в zookeeper_server.ПИД, как я и ожидал. Правильно ли это ожидание? Из того, что я сделал до сих пор, следует ли ожидать, что здесь будут показаны еще какие-либо процессы?

Я установил hbase-1.1.2. Я настраиваю hbase-сайт.XML. Я установил hbase.теперь, если для файловой системы HDFS://localhost в:8200/HBase у моей HDFS-это работает на localhost:8200. Я в HBase.смотритель зоопарка.собственность.dataDir к dataDir моего смотрителя зоопарка, с ожиданием, что он будет использовать это свойство, чтобы найти PID Бегущего смотрителя зоопарка. Правильно ли это ожидание или я неправильно его понял? Конфигурации в HBase-сайте.xml-это:

<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8020/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>Users/.../tools/hd/zookeeper_data</value>
</property>

Когда я бегу start-hbase.sh мой сервер не запускается. Я вижу это сообщение журнала:

2015-09-26 19:32:43,617 ERROR [main] master.HMasterCommandLine: Master exiting

Чтобы исследовать я побежал hbase master start и получить более подробную информацию:

2015-09-26 19:41:26,403 INFO [Thread-1] server.NIOServerCnxn: Stat command output 2015-09-26 19:41:26,405 INFO [Thread-1] server.NIOServerCnxn: Closed socket connection for client /127.0.0.1:63334 (no session established for client) 2015-09-26 19:41:26,406 INFO [main] zookeeper.MiniZooKeeperCluster: Started MiniZooKeeperCluster and ran successful 'stat' on client port=2182 Could not start ZK at requested port of 2181. ZK was started at port: 2182. Aborting as clients (e.g. shell) will not be able to find this ZK quorum. 2015-09-26 19:41:26,406 ERROR [main] master.HMasterCommandLine: Master exiting java.io.IOException: Could not start ZK at requested port of 2181. ZK was started at port: 2182. Aborting as clients (e.g. shell) will not be able to find this ZK quorum. at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:214) at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126) at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2304)

Итак, у меня есть несколько вопросов:

  1. Должен ли я пытаться установить стать смотрителем зоопарка, прежде чем запустить HBase?
  2. Почему, когда я запустил zookeeper и сказал HBase, где находится его dataDir, HBase пытается запустить свой собственный zookeeper?
  3. что-нибудь очевидно глупое/ошибочное в вышеприведенном?
2 2

2 ответа:

Скрипт, который вы используете для запуска hbase start-hbase.sh, попытается запустить следующие компоненты по порядку:

  • смотритель зоопарка
  • HBase master
  • HBase regionserver
  • HBase master-backup

Итак, вы можете либо остановить смотрителя зоопарка, который запускается вами (или) вы можете запустить демонов самостоятельно:

# start hbase master
bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start master
# start region server
bin/hbase-daemons.sh --config ${HBASE_CONF_DIR} --hosts ${HBASE_CONF_DIR}/regionservers start regionserver

HBase stand alone запускает свой собственный zookeeper (если вы запускаете start-hbase.sh), но если он не запускается или продолжает работать, другие демоны need HBase не будут работать.

Убедитесь, что вы явно задали свойства для вашего интерфейса lo0 в файле hbase-site.xml:

<property>
  <name>hbase.zookeeper.dns.interface</name>
  <value>lo0</value>
</property>

<property>
  <name>hbase.regionserver.dns.interface</name>
  <value>lo0</value>
</property>

<property>
  <name>hbase.master.dns.interface</name>
  <value>lo0</value>
</property>

Я обнаружил, что, когда мой Wi-Fi был включен, если эти записи отсутствовали, zookeeper подавал на старт.