[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]