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)
Итак, у меня есть несколько вопросов:
- Должен ли я пытаться установить стать смотрителем зоопарка, прежде чем запустить HBase?
- Почему, когда я запустил zookeeper и сказал HBase, где находится его dataDir, HBase пытается запустить свой собственный zookeeper?
- что-нибудь очевидно глупое/ошибочное в вышеприведенном?
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 подавал на старт.