夏季體驗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條記錄,適合存儲物聯網數據。