hbase依賴zookeeper來管理它的HRegionServers,zookeeper存儲的數據結構相似於文件系統的目錄節點樹模型,主要經過維護和監控你存儲的數據的狀態變化,觸發事件,
從而進行基於數據的集羣管理,zookeeper的用法,就相似如目錄節點樹的操做,首先建立一個目錄節點,給某個目錄節點設置數據,獲取某個目錄節點的全部子目錄節點,
給某個目錄節點設置權限和監控這個目錄節點的狀態變化,通知目錄節點的擁有者。
zookeeper做爲一個集羣系統的管理系統,它對所管理的集羣是無耦和的,它提供一個存儲和管理數據場所,集羣系統將它的管理模塊入駐其中,
一旦數據的狀態發生變化,Zookeeper就將負責通知相應的住戶們做出反應,從而實現管理Master/Slave集羣。
此外,zookeeper也適合用於集羣的配置管理,共享瑣,隊列管理等。做爲一個獨立的集羣管理系統它是很優秀的,值得一試。
zookeeper能夠分佈式部署,也能夠只有一個。sql
hbase有一套本身的完整的數據存儲系統HStore,包括本身的存儲格式(封裝自HFile),內存存儲緩衝MemStore,最終存儲StoreFiles實體,小StoreFiles合併Compact系統,
大StoreFiles的Region Split系統。記錄寫操做的HLog等。shell
habse對時鐘一致性有較高的要求。realserver建議裝上ntp時鐘同步服務。數據結構
跟大多數nosql同樣支持Thrift接口。 稱爲 hbase-thrift-server你須要啓動這個服務。bin/hbase.sh thrift ssh
hbase運行時會大量的打開文件,通常默認的限制1024是不夠的。使用ulimit打開habse的文件限制。設置爲最大值把。nosql
選用cloudera的 hbase0.94.6-cdh4.3.0
選用理由:依據cloudera的特點,cloudera知名,有實力,商用性強,生態系統組件完善,且各個組件版本對應正確,文檔維護好。分佈式
申請的機器:測試
192.168.2.21
192.168.2.22 設計
假設你已經安裝好了。server
配置過程:xml
配置hbase是比較簡單的,只須要配置 conf/hbase-site.xml 跟文件就行 conf/hbase-env.sh
下面是咱們用的一些:(注意我這裏是用ip來代替的,在你的環境中請使用hostname來替換)
核心配置conf/hbase-site.xml
hbase.rootdir hdfs://192.168.2.21:9000/hbase hbase的根目錄
hbase.cluster.distributed true 以分佈式方式運行
hbase.zookeeper.property.quorum 192.168.2.21 zookeeper監管列表
hbase.regionserver.dns.interface 選中一個網卡,全部機器須要同樣。無必要,不設置
hbase.regionserver.dns.nameserver 設置dns解析地址 用於解析hostname,生產環境有必要
運行是環境變量配置conf/hbase-env.sh :
HBASE_MANAGES_ZK true 使用內置的zookeeper服務在下面的文章中會介紹集羣部署zookeeper
regionserver列表 conf/regionserver:
192.168.2.21 HMaster zookeeper regionserver
192.168.2.22 regionserver
啓動hbase
*啓動前確保你的主機們都是ssh無密碼互通的,並且時間是一致的
bin/start-hbase.sh
啓動後使用jps命令,你應該能夠看到相關的服務,其中QuorumPeerMain爲zookeeper服務
測試使用hbase
bin/hbase shell
進入shell界面
create ‘t1′,{NAME=>’cf1′},{NAME=>’cf2′},{NAME=>’cf3′}
建立表t1 columnfamily 是cf1,cf2,cf3
使用命令 list
列出你建立的表信息。