CentOS7 部署zookeeper-3.4.6 + Hbase-1.0.0

之前早早的部署好了Hbase,不过用的是hbase集成的zookeeper,据说效果不好(具体如何没有亲测)。于是决定自己独立搭起zookeeper服务器。 首先下载了最新的zookeeper稳定版,目前是3.4.6,解压后开始修改配置文件
根据官方文档的描述,复制conf/zoo_sampe.cfg改名为zoo.cfg,设置如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=2
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/hdfs/zookeeper
# the port at which the clients will connect
clientPort=2181

server.1 hadoop0:2888:3888
server.2 hadoop1:2888:3888
server.3 hadoop2:2888:3888                                 

注释已经写得比较清楚了

tickTime是zookeeper的时钟周期,单位是毫秒。initLimit和syncLimit后面跟的数值都是以这个时钟周期为单位的。

initLimit是follower连接leader的超时周期

syncLimit是follower允许和leader不保持同步的最大容忍周期

dataDir是zookeeper的内存快照等数据的保存目录,由于myid也保存在这个目录里,所以这个目录最好不要设置为系统的临时目录,否则每次重启机器都要重建myid

clientPort就是zookeeper客户端连接zookeeper服务器用的端口,如果修改了2181这个默认值,之后在hbase中也要做相应设置

server.x 就是设置zookeeper服务器了。不过要注意的是,zookeeper识别自己是哪个服务器,是通过dataDir里面的myid文件来确定的,而不是这里的参数。因此这里设置好之后,还要去dataDir(我这里是/hdfs/zookeeper)里面手工建立个文件叫myid,内容就是server.x中的x,比如我这里的hadoop0:/hdfs/zookeeper/myid,内容是

1

server.x后面跟的两个端口号,第一个是zookeeper服务器之间通信用的,第二个则是用来做leader election的。如果修改了2888、3888这两个默认值,在hbase的配置文件中也要做相应的设置

修改好这些后,就可以把zookeeper目录复制到各个zookeeper服务器上并运行了

这里要注意的是,与hdfs、hbase不同,zookeeper服务器是独立启动的,而不是在一台机器上敲个命令所有节点都自动启动。因此这里我写了个脚本:

for i in $(seq 0 2)
do
        echo hadoop$i:
        ssh root@hadoop$i /opt/zookeeper/bin/zkServer.sh $1
Done

其中的路径是zookeeper里面的zkServer.sh的所在路径,我这里把zookeeper文件夹整体放到了opt里面。利用这个脚本就可以方便的启动、关闭、查询zookeeper的状态了。比如需要查询zookeeper的状态可以如下操作:

[root@hadoop0 opt]# ./zooKeeper.sh status   
hadoop0:
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower
hadoop1:
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: leader
hadoop2:
JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower

可以看到,当前hadoop1是leader,其他的是follower。

中间有个插曲,就是启动zookeeper后,zookeeper服务器之间无法通信,原因是被系统的iptables限制了。由于对iptables没有过多的了解也暂时不打算深究,我直接用iptables -F清空了设置就可以了

zookeeper启动好以后可以参考官方文档用zookeeper里的bin/zkCli.sh连接zookeeper服务器做一些小例子,这里就不赘述了。

启动好zookeeper后,hbase作相应的设置就好了,首先修改hbase目录下的conf/hbase-env.sh将hbase的zk关掉,也就是去掉注释并修改这个语句

export HBASE_MANAGES_ZK=false   

然后修改conf/hbase-site.html,注释掉hbase.zookeeper.property.dataDir相关的设置,zookeeper.quorum设置为zookeeper的服务器就可以了,我这里是

 <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop0,hadoop1,hadoop2</value>
</property>

与之前hbase的配置相同没做修改。
其他hbase的设置参考我之前的博文 http://blog.csdn.net/strangerzz/article/details/45040471 ,之后启动hbase就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值