[b][color=green][size=x-large]散仙,在上篇文章,已经介绍了Hbase的完全分布式集群部署,这次要介绍的,也是基于Hbase的完全分布式集群,只不过集群的zookeeper与上次的不同,我们都知道Hbase为了简化集群部署,已经内置了zookeeper,大部分时候使用内置的zookeeper都可以非常方便的部署集群,而这一点与solr中solrcloud的集群部署非常相似,solrcloud也内置了zookeeper了,启动的时候可以由solr负责启动zookeeper,而在Hbase中,则是由Hbase负责启动zookeeper的。
其实,大多数的分布式应用框架,都离不开zookeeper这个统一协作服务,当然,我们也可以不用其内置的 zookeeper,由我们自己来安装维护独立的zookeeper集群,关于外置和内置的zookeeper也算各有利弊吧,散仙在此,就不加以评论了,下面开始进入正题,配置独立的zookeeper集群来管理Hbase。[/size][/color][/b]
[b][color=olive][size=x-large]在这之前,需要注意的是,如果使用的是外置zookeeper那么这个zookeeper版本号,建议跟Hbase里面内置的zookeeper版本保持一致,这样尽可能避免出现一些莫名其妙的错误。总结的步骤,如下图所示:[/size][/color][/b]
[b][color=olive][size=x-large][table]
|顺序|内容
|一|配置Hbase的hbase-env.sh文件
|二|配置下载的zookeeper3.4.5
|三|分发zookeeper到每个节点上
[/table][/size][/color][/b]
[b][color=olive][size=x-large]第一步,配置hbase-env.sh内容截图如下:[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0091/3671/e89002ed-c4c0-32ab-905a-7c933538c77b.jpg[/img]
[b][color=olive][size=x-large]第二步,配置zookeeper,修改其config目录下zoo_simple.cfg重命名为zoo.cfg,并在其data目录(自己手动创建)下,新建一个myid文件,server.x后面的x数字一直即可,修改其内容如以下截图:[/size][/color][/b]
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zookeeper/data
clientPort=2181
server.1=10.2.143.5:2887:3887
server.2=10.2.143.36:2888:3888
server.3=10.2.143.37:2889:3889
[img]http://dl2.iteye.com/upload/attachment/0091/3678/f788bb7c-d517-31bc-bb28-77b4e9e80410.jpg[/img]
[img]http://dl2.iteye.com/upload/attachment/0091/3681/a7645484-fefa-3d78-ac11-9e47760635d5.jpg[/img]
[b][color=olive][size=x-large]第三步,使用scp命令,进行远程拷贝zookeeper到子节点,需要注意的是,zookeeper的配置个数只能是奇数个,一般建议是3或5个比较好,当然你也可以配置更多,来保证集群的稳定性。,截图如下:[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0091/3685/177214a9-554c-300b-8cb2-68fd9cc908c3.jpg[/img]
[b][color=green][size=x-large]最后我们就可以关闭防火墙,来启动集群了,注意集群启动的顺序,先启动hadoop集群,然后到各个节点上启动Zookeeper,最后再启动Hbase集群,启动成功后,jps打印命令如下:[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0091/3712/973a8cbc-b8aa-3cdd-9b40-1a0904d044c8.jpg[/img]
[b][color=green][size=x-large]访问Hbase首页Web的截图如下:[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0091/3716/b6552b18-a0ea-316a-b062-a28bbe29b2f3.jpg[/img]
[b][color=olive][size=x-large]使用Java API操作Hbase,示例如下截图:[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0091/3720/bfeb328d-5ce7-3d05-91a1-d4e2c55a5757.jpg[/img]
[b][color=olive][size=x-large]然后,我们使用Hbase shell在服务器上验证,刚才的建表步骤是否成功,截图如下:[/size]
[img]http://dl2.iteye.com/upload/attachment/0091/3728/7d1a415e-8a82-3059-8b66-2ede1775a4a3.jpg[/img]
[size=x-large]至此,我们已经成功完成,使用外置zookeeper与Hbase的集群。最后注意,停止集群的顺序,先关闭Hbase,然后再关闭zookeeper,最后关闭hadoop,好了,现在,你可以带着你的好奇心,去放心大胆的尝试部署了,加油![/size][/color][/b]