要将 HBase 指向现有的 ZooKeeper 集群(不受 HBase 管理的集群),请将 conf / hbase-env.sh 中的HBASE_MANAGES_ZK设置为 false

 ...
  # Tell HBase whether it should manage its own instance of ZooKeeper or not.
  export HBASE_MANAGES_ZK=false 

接下来在 hbase-site.xml 中设置集合位置和客户端端口(如果是非标准的)。

当 HBase 管理 ZooKeeper 时,它将启动/停止 ZooKeeper 服务器作为常规启动/停止脚本的一部分。如果您想自己运行 ZooKeeper,独立于 HBase 启动/停止,您将执行以下操作

${HBASE_HOME}/bin/hbase-daemons.sh {start,stop} zookeeper 

请注意,您可以以这种方式使用 HBase 来启动与 HBase 无关的 ZooKeeper 集群。只要确保将HBASE_MANAGES_ZK设置为false,如果希望它在 HBase 重启时保持不变,那么当 HBase 关闭时,它不会使 ZooKeeper 失效。

有关运行不同 ZooKeeper 集群的更多信息,请参阅 ZooKeeper 入门指南。另外,有关 ZooKeeper 大小调整的更多信息,请参阅 ZooKeeper WikiZooKeeper 文档