hbase和zookeeper的安裝和部署

哥不是小蘿莉發表於2015-02-04

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安裝

  1. 叢集的規模小於等於3,各個叢集的系統時間必須一致。

  2. 安裝

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

相關文章