基于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内容截图如下:
第二步,配置zookeeper,修改其config目录下zoo_simple.cfg重命名为zoo.cfg,并在其data目录(自己手动创建)下,新建一个myid文件,server.x后面的x数字一直即可,修改其内容如以下截图:
- 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
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
第三步,使用scp命令,进行远程拷贝zookeeper到子节点,需要注意的是,zookeeper的配置个数只能是奇数个,一般建议是3或5个比较好,当然你也可以配置更多,来保证集群的稳定性。,截图如下:
最后我们就可以关闭防火墙,来启动集群了,注意集群启动的顺序,先启动hadoop集群,然后到各个节点上启动Zookeeper,最后再启动Hbase集群,启动成功后,jps打印命令如下:
访问Hbase首页Web的截图如下:
使用Java API操作Hbase,示例如下截图:
然后,我们使用Hbase shell在服务器上验证,刚才的建表步骤是否成功,截图如下:
至此,我们已经成功完成,使用外置zookeeper与Hbase的集群。最后注意,停止集群的顺序,先关闭Hbase,然后再关闭zookeeper,最后关闭hadoop,好了,现在,你可以带着你的好奇心,去放心大胆的尝试部署了