【问题标题】:Use the existing zookeeper in hbase在 hbase 中使用现有的 zookeeper
【发布时间】:2018-02-18 17:03:45
【问题描述】:

我以独立模式启动了zookeeper服务,zookeeper二进制文件与Kafka一起携带。以下是zookeeper.properties的内容

dataDir=/tmp/zookeeper                     
clientPort=2181                                     
maxClientCnxns=0  

我使用以下命令启动了 zookeeper。

kafka/bin/zookeeper-server-start.sh config/zookeeper.properties

现在zookeeper已经启动并运行了,所以我不希望hbase启动自己的zookeeper服务。我在hbase-env.sh中设置了以下属性:

export HBASE_MANAGES_ZK=false

另外,这里是hbase-site.xml的内容。

<configuration>              
  <property>                 
    <name>hbase.rootdir</name>                             
    <value>hdfs://localhost:8030/hbase</value>             
  </property>                
</configuration>      

我尝试使用start-hbase.sh启动hbase,并从/usr/local/hbase/logs/hbase-root-master-vultr.guest.out获取日志

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.

貌似hbase还在尝试启动自己的zookeeper,如何防止呢?

【问题讨论】:

    标签: hadoop hbase apache-zookeeper


    【解决方案1】:

    我假设您正在尝试以伪分布式模式运行 HBase。在这种情况下,hbase.cluster.distributed 应设置为 true,并且您的 zookeeper quorum 详细信息应在 hbase-site.xml 中提供,如Apache doc 中所述

    【讨论】:

      【解决方案2】:

      使用 HBase 用于 Kafka 的 ZK 为我解决了这个问题。如下配置 $HBASE_HOME/conf/hbase-site.xml 并启动 HBase 服务器。此后仅启动 kafka 服务器。

      hbase-site.xml 配置

      <configuration>
          <property>
              <name>hbase.rootdir</name>
              <value>/tmp/hbase</value>
          </property>
          <property>
              <name>hbase.zookeeper.property.dataDir</name>
              <value>/tmp/zookeeper</value>
          </property>
      </configuration>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-08
        • 1970-01-01
        • 2018-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多