hbase簡介與安裝
HBase簡介
hbase是高可靠性、高效能、面行列、可伸縮、實時讀寫的NoSql分散式資料庫。
hbase主要儲存非結構化/半結構化的鬆散資料
hbase資料模型
1.NameSpace
名稱空間,每個名稱空間下有多個表。hbase自帶兩個名稱空間,分別為hbase與default。hbase中存放的是hbase內建的表,default表是使用者預設使用的名稱空間。
2. Region
hbase自動把表水平劃分成多個區域,每個Region會儲存每個表中某一段連續的資料。每張表開始只有一個Region,隨著資料不斷插入表,當增加閾值時,Region就會分成兩個新的region。
- Region是hbase中分散式儲存和負載均衡的最小單元,不同的Region分佈在不同的RegionServer上。
- Region有一個或多個store組成,每個store對應一個列簇。
3.RowKey
hbase中的資料都是由一個rowkey與多個column組成的。資料是按照rowkey字典升序
。最大長度是64KB,實際應用中長度一般為 10 ~ 100bytes。
4. Column
在建表時,必須要指定一個列簇,一個列簇對應一個store。
5.時間戳
資料寫入時,會自動指定時間戳,時間戳按照自然降序
。
6. Cell
Cell 是由 {row key,column(=< family> + < label>),version} 唯一確定的 單元。Cell種的資料是沒有型別的,全部是位元組碼形式儲存。
hbase基本架構
- Master:
- 為regionserver分配region。
- 負責RegionServer的負載均衡。
- 發現失效的RegionServer並分配其上的Region。
- 管理使用者對錶的增刪改操作。
- RegionServer
- 維護Region,處理對這些Region的IO請求。
- 負責切分在執行中變得過大的Region
- zookeeper
- hbase通過zookeeper來做master的高可用、儲存元資料。
- HDFS
- 為hbase提供了最底層的儲存服務。hbase以Hfile的形式儲存在hdfs上。
hbase安裝
環境依賴
1.啟動hadoop
start-all.sh
2.啟動zookeeper需要在在三臺中分別啟動
zkServer.sh start
zkServer.sh status
3.上傳解壓配置環境變數(預設安裝目錄/usr/local/soft)
tar -xvf hbase-1.4.6-bin.tar.gz
修改配置檔案
4.修改hbase-env.sh檔案
增加java配置
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
關閉預設zk配置
export HBASE_MANAGES_ZK=false
5.修改hbase-site.xml檔案
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,master</value>
</property>
6.修改regionservers檔案
增加
node1
node2
如果是偽分散式版本,增加master即可
7.同步到所有節點(如果是偽分散式不需要同步)
scp -r hbase-1.4.6/ node1:`pwd`
scp -r hbase-1.4.6/ node2:`pwd`
8.配置環境變數
vim /etc/profile
9.啟動hbase叢集 , 需要在master上執行
start-hbase.sh
10.驗證hbase
http://master:16010