大資料量 (100s tb級資料) 且有快速随機通路的需求。
例如淘寶的交易曆史記錄。資料量巨大無容置疑,面向普通使用者的請求必然要即時響應。
容量的優雅擴充。
大資料的驅使,動态擴充系統容量的必須的。例如:webpage db。
業務場景簡單,不需要關系資料庫中很多特性(例如交叉列、交叉表,事務,連接配接等等)。
優化方面:合理設計rowkey。因為hbase的查詢用rowkey是最高效的,也幾乎的唯一生産環境可行的方式。是以把你的查詢請求轉換為查詢rowkey的請求吧。
hbase-env.sh
啟動shell:
啟動hbase:
zk可以用來保證資料在zk叢集之間事務性一緻,如:
删除server1中的資料後,其他叢集的server會自動同步删除之後的資料。
叢集的規模小于等于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檔案夾到叢集
啟動zk的服務:zkserver.sh start
驗證zk的啟動狀态:zkserver.sh status
zookeeper的叢集數推薦配置奇數,leader選舉算法采用了paxos協定,該協定的核心思想是當多數server寫成功時,則任務資料寫成功,如:
有3個server,則兩個寫成功即可;
有4或5個server,則三個寫成功即可;
如果有3個server,則最多運作1個server挂掉
如果有4個server,則同樣最多運作1個server挂掉
由此,我們可以看出3台伺服器和4台伺服器的容災能力是一樣的,是以為了節約伺服器資源,一般我們采用奇數個數,作為伺服器部署個數。