標籤:
以下內容為個人理解,僅供參考。
一、簡介
Hbase是在HDFS上開發的面向列的分散式資料庫,適用於隨機讀/寫超大規模的資料集(通常這種資料壓力傳統RDBMS很難承受),可以在廉價的硬體上構成的叢集上管理超大規模的稀疏表,並且可以水平擴充。
二、基礎概念
1、Hbase把資料存放在表中,表由行列組成,表中的行是排序的(根據ASCII順序),行鍵作為表的主鍵,對錶的資料訪問需要通過主鍵或者主鍵Range,故行鍵的設計很重要。
2、列由“列族”組成(即對列分類),不同列族的資料通常放在不同的檔案夾裡,列族不宜過多,Hbase啟動時就開啟資料檔案,並且一直保持開啟狀態(Linux 預設一個進程開啟最大檔案數為1024),不合理的設計將導致異常。定義表時必須定義一個可用的列族,使用者可根據需要增加或刪除列族,但是必須先disable。
3、Hbase為master/slave結構,依賴於zookeeper,master 管理著多個regionServer。
三、安裝(standalone)
1、必須安裝Java 1.6 或者更高版本。
2、可用修改~/.base_profile,export JAVA_HOME指向JAVA安裝路徑,也可修改conf/hbase-env.sh 中 export JAVA_HOME=/usr/java/jdk1.6.0/
3、預設情況下,hbase會使用/tmp/hbase-$USERID作為資料存放區目錄,有些系統重啟會清空/tmp目錄,可用通過更改hbase-site.xml來配置資料存放區目錄,如:
<configuration> <property> <name>hbase.rootdir</name> <value>file:///opt/hbase_data</value> </property></configuration>
4、修改bin下sh檔案執行許可權,通過 ./bin/start-hbase.sh即可啟動hbase,通過tail -f 監聽./log/hbase-root-master-hbase-xx.log來查看啟動資訊。
四、Hbase shell
使用 ./bin/hbase shell即可進入管理hbase,使用secureCRT會導致無法刪除鍵入的錯誤命令(backspace delete鍵無法使用),筆者使用putty(v0.62)可正常使用,下面是一些樣本:
下面以建立一個stations的表,這表的行鍵是stationid, 列包含info.name(名稱)、info.countryCode(網站所屬國家代號)
1、建立一個表與顯示所有表
hbase> create ‘stations‘,‘info‘ --建立一個帶有info列族的stations表
hbase> list --顯示當前所有表
2、錄入資料(如果錄入同一行同一列則代表更新)
hbase> put ‘stations‘, ‘1001‘, ‘info:name‘, ‘HAILAR‘ --錄入1001為行鍵、HAILAR為網站名稱的記錄
hbase> put ‘stations‘, ‘1001‘, ‘info:countryCode‘, ‘CH‘ --CH代表china
hbase> put ‘stations‘, ‘1002‘, ‘info:name‘, ‘NENJIANG‘
hbase> put ‘stations‘, ‘1002‘, ‘info:countryCode‘, ‘CH‘
3、讀取、刪除資料
hbase> scan ‘stations‘ --讀取表中所有資料hbase> get ‘stations‘,‘1001‘ --得到行鍵為1001的所有列
hbase> get ‘stations‘,‘1002‘,‘info:name‘ --得到行鍵為1002的info:name列
hbase> delete ‘stations‘,‘1001‘,‘info:countryCode‘ --刪除1001行的info:countryCode列
4、增加/刪除列族
hbase> disable ‘stations‘hbase> alter ‘stations‘, {NAME=>‘data‘} --增加data列族,可以錄入以data:作為prefix的列hbase> enable ‘stations‘
hbase> describe ‘stations‘ --列出表結構
---刪除列族
hbase> disable ‘stations‘
hbase> alter ‘stations‘,{NAME=>‘data‘, METHOD=>‘delete‘} --刪除stations裡面的data列族,列族下面的列將被全部刪除
5、刪除表
hbase> disable ‘stations‘ --需要把表disablehbase> drop ‘stations‘
通過http://hbase-master:60010/ 可查看hbase狀態資訊
Hbase 基礎 - shell 與 用戶端