1.概要
1.1HBase的使用場景
大數據量 (100s TB級數據) 且有快速隨機訪問的需求。
例如淘寶的交易歷史記錄。數據量巨大無容置疑,面向普通用戶的請求必然要即時響應。
容量的優雅擴展。
大數據的驅使,動態擴展系統容量的必須的。例如:webPage DB。
業務場景簡單,不需要關系數據庫中很多特性(例如交叉列、交叉表,事務,連接等等)。
優化方面:合理設計rowkey。因為hbase的查詢用rowkey是最高效的,也幾乎的唯一生產環境可行的方式。所以把你的查詢請求轉換為查詢rowkey的請求吧。
1.2軟件准備
hbase-0.98.8 【下載地址】
zookeeper-3.4.6 【下載地址】
2.配置
sudo vi /etc/profile HBASE_HOME=/home/hadoop/source/hbase-0.98.8 ZK_HOME=/home/hadoop/source/zookeeper-3.4.6 PATH=$HBASE_HOME/bin:$ZK_HOME/bin export HBASE_HOME ZK_HOME
hbase-env.sh
export JAVA_HOME=/usr/jdk1.7
啟動shell:
hbase shell
啟動hbase:
start-hbase.sh
3.ZK
3.1概要
zk可以用來保證數據在zk集群之間事務性一致,如:

刪除Server1中的數據后,其他集群的Server會自動同步刪除之后的數據。
3.2安裝
-
集群的規模小於等於3,各個集群的系統時間必須一致。
- 安裝
(1)解壓zk的壓縮包到指定位置。
(2)修改conf文件,cp zoo_sample.cfg zoo.cfg
(3)編輯zoo.cfg 修改dataDir=/home/zk/data 新增 server.0=hadoop0:2888:3888 server.1=hadoop1:2888:3888 server.2=hadoop2:2888:3888
(4)創建文件夾 mkdir /home/zk/data 在data目錄下,創建文件myid,值為0
(5)用scp命令分發zk文件夾到集群
3.3啟動/驗證
啟動zk的服務:zkServer.sh start
驗證zk的啟動狀態:zkServer.sh status
4奇數選舉
zookeeper的集群數推薦配置奇數,Leader選舉算法采用了Paxos協議,該協議的核心思想是當多數Server寫成功時,則任務數據寫成功,如:
- 有3個Server,則兩個寫成功即可;
- 有4或5個Server,則三個寫成功即可;
- 如果有3個Server,則最多運行1個Server掛掉
- 如果有4個Server,則同樣最多運行1個Server掛掉
由此,我們可以看出3台服務器和4台服務器的容災能力是一樣的,所以為了節約服務器資源,一般我們采用奇數個數,作為服務器部署個數。
