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臺伺服器的容災能力是一樣的,所以為了節約伺服器資源,一般我們採用奇數個數,作為伺服器部署個數。