HBase學習之路——簡單命令操作介紹

前言

在前面幾篇博客中,已經簡單介紹了HBase的歷史和概念、HBase單機/完全分佈式安裝、HBase底層機制等,這篇博客主要是介紹HBase中的幾個簡單命令~

在此給出HBase相關博客,以供學習參考,歡迎校正,感謝~

簡單命令介紹

1. list 列出所有表

2. create 'table_name' , 'column family_name' , ……創建新表   注意創建時至少要跟一個列族定義

3. alter 'table_name','column family_name' ,……在已經創建好的表上追加列族 當然要注意同一個表中列族名唯一

4. describe 'table_name' 顯示錶的信息(列族的詳細屬性信息)

其中列族的具體屬性信息我們此處不進行介紹,後續看情況會進行專題總結~

5. scan 'table_name' 顯示錶的具體數據信息(以rowkey爲顯示順序)

如上圖所示,可以加上STARTROW/ENDROW來限制scan掃描的範圍,需要注意掃描出來的行數大於等於STARTROW,小於且不等於ENDROW,同時STARTROW和ENDROW應該爲rownum行名,而非行數數字

6. put 'table_name' , 'rowkey' , 'column family_name:column_name' , 'value' 在表中插入數據,其中rowkey即row_name

需要注意的一點,HBase表中最重要的部分就是列族,在列族沒有插入數據的時候,沒有數據屬性,row和column均是空的,只有插入數據scan纔會顯示rowkey和column信息,一般column信息中會顯示列族名、列名、單元格數據value和時間戳。如果插入數據未指明時間戳,系統會默認插入數據的時間爲該數據的時間戳。同時一般時間戳作爲版本號version。

下圖爲修改test1 c1 name並加入自定義的時間戳,最後scan會顯示時間戳大的數據

7. put 'table_name' , 'rowkey', 'column family_name:column_name' 查詢數據,put查詢速度快於scan(前者條件查詢,後者全表掃描)。注意get只能查詢一個單元格的數據。

可以加上版本數量,結果爲單元格對應版本的數據。有些版本的HBase可能不支持這個操作,因爲我的1.1.3用這個命令就無事發生2333

8. delete 'table_name' , 'rowkey', 'column family_name:column_name' 刪除某單元格數據,根據前面HBase底層存儲機制的學習,我們也知道數據是表面刪除,實際上是在HDFS上增加了一個type爲DELETE的新數據,算是一個Tombstone墓碑標記,等到表數據compaction合併時徹底刪除。

delete是刪除某行的一列數據,deleteall可以刪除整行記錄

9. drop 'table_name' 刪掉表 需要注意在drop之前需要先disable 'table_name' 禁掉此表,才能刪除。這也是HBase集羣工作數據的一種保護機制。

同時使一個被禁掉的表重新工作,使用enable 'table_name' 命令即可。

10. count 'table_name' 計算表的行數。

總結

在此只是簡單介紹了HBase一些最基礎常用的簡單命令,平常學習的時候可以上HBase官網看API文檔,或者使用help 'command_name’ 查看某命令的詳細介紹。

感謝閱讀↖(^ω^)↗

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章