HBase全分布式模式【Zookeeper error while executing HBase shell]

HBase fully distributed mode [Zookeeper error while executing HBase shell]

按照这两个教程:即 tutorial 1 and 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/ 中评论 HBase 相关主机,仍然没有用)

经过 5 天的忙碌,我知道出了什么问题。在这里发布我的解决方案。希望它也能帮助其他一些开发人员。还要感谢@VV_FS 的评论。

在我的场景中,我使用了从外部挖来的虚拟机。因此,有一定的防火墙和其他安全措施。如果您遵循类似的实验设置,这些步骤可能会对您有所帮助。

要设置 HBase 集群,请按照以下教程进行操作。

  1. Set up Hadoop in distributed mode.

在完全分布式模式下设置 HBase 时的注意事项:

  • 确保打开 post 中提到的所有端口。例如,使用 sudo ufw allow 9000 to open port 9000。按照命令打开所有与运行 Hadoop相关的端口。
  1. Set up Zookeeper in distributed mode.

在完全分布式模式下设置 Zookeeper 时的注意事项:

  • 确保打开 post 中提到的所有端口。例如,使用 sudo ufw allow 3888 to open port 3888。按照命令打开所有与运行 Zookeeper相关的端口。
  • DO 安装后不启动 ZOOKEEPER 节点。 ZOKEEPER 将在内部由 HBASE 管理。因此,不要在这个阶段启动 ZOOKEEPER.
  1. Set up HBase in distributed mode.
  • 设置 hbase-site.xml 的值时,对 hbase.master 标记使用端口号 60000,而不是 60010。 (感谢@VV_FS 在之前的讨论中指出了这一点)。

  • 确保打开 post 中提到的所有端口。例如,使用 sudo ufw allow 60000 to open port 60000。按照命令打开所有与运行 Zookeeper.

    相关的端口

[重要思想]:如果遇到错误,请始终参考 HBase 日志。就我而言,hbase-mater-xxxxx.logzookeeper-master--xxx.log 帮助我找到了准确的错误。