hadoop - hbase master 没有启动
问题描述
我在独立模式下在 Hadoop 上运行 HBase。我已经成功安装了 hadoop、zookeeper 和 hbase,但是在 hbase 中 master 没有启动。下面是我的 hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/kumar/hdata/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
</configuration>
我已经启动了 hadoop 和 zookeeper 服务:
start-all.sh
zkServer.sh start
start-hbase.sh
以及我在 Jps 命令中得到的进程
2133 DataNode
1974 NameNode
2679 NodeManager
2365 SecondaryNameNode
3917 QuorumPeerMain
2527 ResourceManager
3935 Jps
Hbase shell 成功启动,但是当我在 shell 中运行任何命令(如“list”)时,出现以下错误:
ERROR: KeeperErrorCode = NoNode for /hbase/master
之后,我尝试使用以下命令运行 master
hbase master start
我得到以下错误:
2018-10-15 18:51:51,380 ERROR [main] server.ZooKeeperServer: ZKShutdownHandler is not registered, so ZooKeeper server won't take any action on ERROR or SHUTDOWN server state changes
2018-10-15 18:51:51,437 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2182] server.NIOServerCnxnFactory: Accepted socket connection from /127.0.0.1:34034
2018-10-15 18:51:51,479 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2182] server.ServerCnxn: The list of known four letter word commands is : [{1936881266=srvr, 1937006964=stat, 2003003491=wchc, 1685417328=dump, 1668445044=crst, 1936880500=srst, 1701738089=envi, 1668247142=conf, 2003003507=wchs, 2003003504=wchp, 1668247155=cons, 1835955314=mntr, 1769173615=isro, 1920298859=ruok, 1735683435=gtmk, 1937010027=stmk}]
2018-10-15 18:51:51,479 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2182] server.ServerCnxn: The list of enabled four letter word commands is : [[wchs, stat, stmk, conf, ruok, mntr, srvr, envi, srst, isro, dump, gtmk, crst, cons]]
2018-10-15 18:51:51,479 INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2182] server.NIOServerCnxn: Processing stat command from /127.0.0.1:34034
2018-10-15 18:51:51,485 INFO [Thread-2] server.NIOServerCnxn: Stat command output
2018-10-15 18:51:51,491 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.
2018-10-15 18:51:51,497 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:217)
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2983)
2018-10-15 18:51:51,500 INFO [Thread-2] server.NIOServerCnxn: Closed socket connection for client /127.0.0.1:34034 (no session established for client)
我也没有得到任何本地 hbase 网址的响应
localhost:60010
解决方案
HBase 有一个内置的 Zookeeper 实例,仅用于开发环境,默认情况下,当您通过命令启动 HBase 时,start-hbase.sh
它也会启动 Zookeeper 守护进程。该错误是因为您已经启动了一个使用该端口的独立 Zookeeper 2181
。当您启动 HBase 时,它也会尝试在 port 中启动它的内置 zookeeper,2181
但它得到了错误!
如果要使用独立的 Zookeeper 组件,首先编辑文件hbase-env.sh
并添加以下行:(export HBASE_MANAGES_ZK=false
您也可以在文件中搜索 HBASE_MANAGES_ZK 变量并将其设置为false
)。所以现在当你启动 HBase 时,它只是启动 HBase Daemon 而不再是 Zookeeper。请记住,您应该在 HBase 之前启动 Zookeeper 守护程序。
推荐阅读
- python - 熊猫时间增量只有小时分钟和秒
- html - 引导 Vue 和 Axios
- javascript - 如何在没有消息对象 Discord.js 的情况下向特定频道发送消息
- python - 如何使用Django删除表中的一行
- android - 单击 Item Inside recycler 视图时,如何在 viewpager2 中膨胀它们各自的片段?
- r - 按组平均丢失任何列
- angular - 为不同用户创建动态角度应用程序
- powerbi - PowerBI - 如何使用 PowerQuery 提取最近 2 个工作日
- javascript - 除非 uid 是硬编码的,否则 firebase 不会加载数据
- opencv - 只有当实时相机视觉中有植物/花卉特色帧时,如何才能抓取帧?