【发布时间】:2021-06-11 07:16:38
【问题描述】:
按照这两个教程:即tutorial 1 和tutorial 2,我能够在完全分布式模式下设置 HBase 集群。最初集群似乎工作正常。
HMaster/Name 节点中的 'jps' 输出
DataNodes/RegionServers 中的 jps 输出
然而,当我每次尝试执行 hbase shell 时,HBase 处理器似乎由于一些 Zookeeper 错误而中断。错误贴在下面:
2021-03-13 11:52:26,047 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed a│1951 HRegionServer
fter 4 attempts │hduser@master-vm:~$
2021-03-13 11:52:26,048 WARN [main] zookeeper.ZKUtil: hconnection-0x4375b0130x0, quorum=137.4│
3.49.59:2181,137.43.49.58:2181,137.43.49.50:2181,137.43.49.49:2181, baseZNode=/hbase Unable to│
set watcher on znode (/hbase/hbaseid) │
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:417) │
at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:6│
我尝试了几次尝试来解决这个问题(包括尝试使用不同的HBase/ Hadoop compatible versions)。但还是没有进展。
希望您对此发表意见。
以下是所需的其他信息:
- 在
/etc/hosts文件中:
(我已经尝试在 /etc/hosts/ 中注释 HBase 相关主机,但仍然无效)
- 在 hbase-site.xml 中
【问题讨论】:
-
不要在 hbase-site.xml 和 regionservers 文件中使用 IP 地址,而是使用您在 /etc/hosts 中指定的主机名。此外,您在 regionservers 上的 jps 输出显示 HMaster 似乎有点奇怪。该进程应该只在主计算机上运行(除非您将主服务器与一个区域服务器放在一起)。 HQuorumPeer 进程也是如此(同样,除非您在同一地点)。
-
@VS_FF 感谢您的回答。但是,它不起作用。
-
在您的 hbase-site.xml 中注意到另一件事:您的 hbase 主端口不正确。在 hbase.master 设置中,我希望端口为 60000。使用当前设置,您可能会将其与 16010 混淆,后者是 web ui 的主端口(但您不必在任何地方进行配置) .
-
我也看到你的 zookeeper dataDir 在 HDFS 中。从来没有这样尝试过,所以不确定它是否可以工作(我通常使用磁盘上的一些本地目录)。
-
不确定我是否知道有关设置集群的全面的好帖子。是的,当然需要打开端口。您可以通过使用 telnet 并指定端口来测试您的机器是否可以在相关端口上相互通信。如果您看到连接已建立,那么您很好;否则你有问题。同样显然,它们都应该能够从主服务器进行 SSH。
标签: hadoop hbase apache-zookeeper