Hbase与Zookeeper之间的关系

Hbase 天涯孤鸟 24703℃ 0评论

hbase start

分布式Apache HBase安装依赖于正在运行的ZooKeeper集群。Apache HBase默认情况下为您管理ZooKeeper“集群”。它将启动和停止ZooKeeper集合作为HBase启动/停止过程的一部分。你还可以独立于HBase管理ZooKeeper集群,只需要在Hbase的配置文件hbase-env.sh中做一些设置即可。要切换ZooKeeper的HBase管理,请使用conf/hbase-env.sh中的HBASE_MANAGES_ZK变量。 此变量默认为true,告诉HBase是否启动/停止ZooKeeper集合服务器作为HBase启动/停止的一部分。如果为true,这Hbase把zookeeper启动,停止作为自身启动和停止的一部分。如果设置为false,则表示独立的Zookeeper管理。

一、Hbase管理Zookeeper集群

Hbase提供了HBASE_MANAGES_ZK变量来设置是否管理zookeeper集群,默认情况,HBASE_MANAGES_ZK设置为true
即告诉Hbase把zookeeper启动、停止作为Hbase启动、停止的一部分。
默认情况是注销状态,默认为true

启动hbase:

查看进程,可以看到有HMaster,HQuorumPeer,HRegionServer三个进程

这里的如果设置了hbase.zookeeper.property.clientPort会覆盖默认配置

二、独立的Zookeeper集群管理

如果要将HBase指向现有的ZooKeeper集群(不是由HBase管理的集群),则将conf/hbase-env.sh中的HBASE_MANAGES_ZK设置为false
如果是独立启动zookeeper集群,那么这里的clientPort必须与zookeeper配置的一致,否则客户端连接的时候会报错。

启动zookeeper

查看进程,可以看到有HMaster,QuorumPeerMain,HRegionServer三个进程

三、两者的区别

  • 1、进程名字不一样
    HQuorumPeer表示hbase管理的zookeeper
    QuorumPeerMain表示zookeeper独立的进程
  • 2、如果hbase管理zookeeper,则在hbase-site.xml配置文件中,设置的
    hbase.zookeeper.property.clientPort,
    hbase.zookeeper.property.dataDir
    将会覆盖zookeeper默认的设置,
    而在独立管理zookeeper中,比如我在hbase-site.xml中配置hbase.zookeeper.property.clientPort=2182,但是zookeeper配置的是2181,那么此时通过shell连接hbase时,会报如下错误:


转载请注明:猫头鹰工作室 » Hbase与Zookeeper之间的关系

喜欢 (4)or分享 (0)
Avatar
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 南瓜一族
    天涯孤鸟哥哥,好牛B啊
    南瓜一族2017-01-11 23:06 Reply