基于Hbase的完全分布式集群

基于Hbase的完全分布式集群,只不过集群的zookeeper与上次的不同,我们都知道Hbase为了简化集群部署,已经内置了zookeeper,大部分时候使用内置的zookeeper都可以非常方便的部署集群,而这一点与solr中solrcloud的集群部署非常相似,solrcloud也内置了zookeeper了,启动的时候可以由solr负责启动zookeeper,而在Hbase中,则是由Hbase负责启动zookeeper的。

其实,大多数的分布式应用框架,都离不开zookeeper这个统一协作服务,当然,我们也可以不用其内置的 zookeeper,由我们自己来安装维护独立的zookeeper集群,关于外置和内置的zookeeper也算各有利弊吧,散仙在此,就不加以评论了,下面开始进入正题,配置独立的zookeeper集群来管理Hbase。



在这之前,需要注意的是,如果使用的是外置zookeeper那么这个zookeeper版本号,建议跟Hbase里面内置的zookeeper版本保持一致,这样尽可能避免出现一些莫名其妙的错误。总结的步骤,如下图所示:

顺序内容配置Hbase的hbase-env.sh文件配置下载的zookeeper3.4.5分发zookeeper到每个节点上



第一步,配置hbase-env.sh内容截图如下:

基于Hbase的完全分布式集群
第二步,配置zookeeper,修改其config目录下zoo_simple.cfg重命名为zoo.cfg,并在其data目录(自己手动创建)下,新建一个myid文件,server.x后面的x数字一直即可,修改其内容如以下截图:

Xml代码 基于Hbase的完全分布式集群 基于Hbase的完全分布式集群基于Hbase的完全分布式集群
  1. tickTime=2000  
  2. initLimit=10  
  3. syncLimit=5  
  4. dataDir=/root/zookeeper/data  
  5. clientPort=2181  
  6.   
  7. server.1=10.2.143.5:2887:3887  
  8. server.2=10.2.143.36:2888:3888  
  9. server.3=10.2.143.37:2889:3889  
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



基于Hbase的完全分布式集群

基于Hbase的完全分布式集群

第三步,使用scp命令,进行远程拷贝zookeeper到子节点,需要注意的是,zookeeper的配置个数只能是奇数个,一般建议是3或5个比较好,当然你也可以配置更多,来保证集群的稳定性。,截图如下:

基于Hbase的完全分布式集群

最后我们就可以关闭防火墙,来启动集群了,注意集群启动的顺序,先启动hadoop集群,然后到各个节点上启动Zookeeper,最后再启动Hbase集群,启动成功后,jps打印命令如下:

基于Hbase的完全分布式集群
访问Hbase首页Web的截图如下:

基于Hbase的完全分布式集群
使用Java API操作Hbase,示例如下截图:
基于Hbase的完全分布式集群
然后,我们使用Hbase shell在服务器上验证,刚才的建表步骤是否成功,截图如下:

基于Hbase的完全分布式集群


至此,我们已经成功完成,使用外置zookeeper与Hbase的集群。最后注意,停止集群的顺序,先关闭Hbase,然后再关闭zookeeper,最后关闭hadoop,好了,现在,你可以带着你的好奇心,去放心大胆的尝试部署了

相关推荐