夏季體驗HBase的魅力
- 2019 年 10 月 6 日
- 筆記
因為偽分散式的hbase的依賴於hdfs,因此我將hbase安裝好後,首先啟動hadoop的hdfs,然後再啟動hbase。關閉順序反之,先關hbase,再關閉hdfs。

一、首先開啟hdfs、hbase
1、開啟hdfs
/usr/local/hadoop/sbin/start-dfs.sh
用jps命令查看有三個進程,說明啟動成功。

2、開啟hbase
/usr/local/hbase/bin/start-hbase.sh
用jps命令查看有六個進程,說明啟動成功。

3、在hdfs中檢查hbase的文件存儲情況
我們用hdfs命令檢查,發現hbase啟動成功後的確創建了一個hbase的文件夾。所有hbase的資料庫全部存儲在hdfs中。

二、進入Hbase的Shell介面,進行操作體驗
1、創建HBase表時,不需要use資料庫,直接創建即可。
create 'student','Sname','Ssex','Sage','Sdept','course'
2、用list相當於mysql中的show tables;用describe與mysql中的desc查看錶結構作用相同
3、用put增加數據,相當於mysql中的insert
用put命令每次只能增加一個cell的內容,效率很低,在實際中一般採用編程方式往hbase中增加數據。其中97001是該行的鍵值。
put 'student','97001','Sname','mx'
put 'student','97001','Ssex','male'
put 'student','97001','Sage','22'
put 'student','97001','Sdept','computer'
put 'student','97001','course:math','80'
4、我們用put命令增加4個cell單元內容後,用scan命令查看該行的記錄。
scan 'student'

大家會發現有一個course:math,這是什麼內容。在Hbase中的column family,column也就是對應這個。course是column family,math是column。這也是Hbase的靈活之處。
5、用delete刪除單元格數據、delete all刪除一行數據
delete 'student','97001','Ssex'
deleteall 'student','97001'
三、體驗Hbase的時間郵戳功能
1、創建一個能保存10個歷史記錄單元格的表格
create 'teacher',{NAME=>'username',VERSIONS=>10},'Sage'
2、向同一個單元格寫入多條數據
put 'teacher','97001','username','MX'
put 'teacher','97001','username','SKY'
put 'teacher','97001','username','BLUE'
3、檢查一個單元格中的數據,的確保存了三份不同的數據。該功能可廣泛應用於社交APP中,保存留言等事先不知道數量的場景。

四、Hbase的應用小結
1、Hbase底層架構在HDFS上,因此是廉價易擴展的Nosql資料庫,能夠隨著HDFS的擴展而橫向擴展。
2、Hbase具有橫拆、堅拆表存儲的功能,能夠將同一個大表的數據拆分為多個Region。如將rowkey為1-100的拆分為一個Region。HBase將不同的Region分布到不同的伺服器上進行存儲、檢索,提高數據的處理效率。Region的設計不是越多越好,太多反而會加重調度的負擔,而太小則性能無法發揮,因此Region的數量設計一般根據伺服器的性能取適當的值。
3、HBase按rowkey進行數據查詢的效率很高,每毫秒可查詢1000-2000條記錄,適合存儲物聯網數據。