大數據系列之HBase命令行操做

一、課程簡介

  • 本文章先會介紹HBase命令行,接着會介紹java代碼對hbase中的表進行增刪改查。
  • 本文章中全部命令均在CentOS-6.4-x86_64,hadoop-2.5.2,jdk1.8.0_152,zookeeper-3.4.11,hbase-1.2.6中運行經過,爲減小linux權限對初學者形成影響,全部命令均在linux的root權限下進行操做。

二、理論回顧

  • HBase是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統,是行業中最經常使用的NoSQL數據庫。HBase正確運行的前提是安裝好Hadoop。
  • Hadoop技術自己包含HDFS、Map/Reduce。HDFS做海量數據存儲之用;M/R做海量數據計算之用。
  • HDFS包含namenode、datanode。namenode對datanode中的數據創建了索引。
  • zookeeper做爲協調服務,爲namenode提供了高可用性。

三、命令行基本操做

注意: java

​ 在執行如下命令以前,確認如下組件啓動成功:zookeeper, hdfs, yarn, hbase。node

​ 在hbase安裝目錄的bin下面,執行以下命令進入hbase命令行:
大數據系列之HBase命令行操做linux

3.1建立普通表

步驟 1 建立普通表的語法爲:create ‘表的名稱’,‘列族的名稱’。數據庫

輸入命令:
大數據系列之HBase命令行操做網絡

建立表「t_info」成功。分佈式

步驟 2 –list 功能:查看系統中共有多少個普通表。ide

大數據系列之HBase命令行操做
由此看出系統中已經存在了3張表了。oop

3.2 建立namespace

建立namespace的語法爲:create_namespace ‘名稱‘。
大數據系列之HBase命令行操做性能

步驟1 在指定namespace下建立表大數據

在指定namespace下建立表:create ‘namespace的名稱:表名‘,‘列族‘。
大數據系列之HBase命令行操做
步驟2 查看指定namespace下的表

查看指定namespace下的表:list_namespace_tables ‘namespace的名稱‘’。
大數據系列之HBase命令行操做

3.3 增長數據

增長數據:put ‘表的名稱‘,‘RowKey’,‘列的名稱’,‘具體的賦值’。

將一個名字爲Kobe,居住在洛杉磯的40歲男人的信息輸入到表「cga_info」中:
大數據系列之HBase命令行操做

3.4 get方式查詢數據

步驟 1 get 功能:精確查詢。

精確查詢某一個RowKey中存儲的內容:get ‘表的名稱‘,’RowKey‘
大數據系列之HBase命令行操做
步驟 2 精確查詢某一個RowKey中的一個單元格中存儲的內容。

語法:get ‘表的名稱‘,’RowKey‘,‘列名’
大數據系列之HBase命令行操做

3.5 scan方式查詢數據

步驟1 查詢表中某個列族下全部列的信息:scan ‘表的名稱‘,{Columns=>’列‘}

大數據系列之HBase命令行操做

步驟2 查詢表中具體的一個列中存儲的信息。

語法:scan ‘表的名稱‘,{Columns=>’列的具體名稱‘}

大數據系列之HBase命令行操做

3.6 指定條件查詢數據

步驟0 加入姚明信息到數據庫中
大數據系列之HBase命令行操做

步驟 1 查詢RowKey爲「123001」和「123002」中的數據。
大數據系列之HBase命令行操做
步驟 2 查詢Rowkey爲「123001」和「123002」中列名稱爲name的單元格中存儲的信息。
大數據系列之HBase命令行操做

3.7 更新數據

步驟 1 首先查詢表中Rowkey爲123001的年齡信息。
大數據系列之HBase命令行操做

步驟 2 更改表中Rowkey爲123001的年齡信息。
大數據系列之HBase命令行操做

步驟 3 再次查詢表中Rowkey爲123001的年齡信息。

大數據系列之HBase命令行操做

由步驟2和步驟3的結果比較可得,年齡信息已經被更新。

3.8 刪除數據

(1)使用delete刪除某一列數據

步驟 1 首先查詢表中Rowkey爲123001的信息。

大數據系列之HBase命令行操做

步驟 2 使用delete刪除123001中age列所存儲的數據。

大數據系列之HBase命令行操做

步驟 3 再次查詢表中Rowkey爲123001的信息。
大數據系列之HBase命令行操做

由步驟1和步驟3的結果比較可得,年齡信息已經被刪除了。

(2) 使用deleteall刪除整行數據

步驟 1 使用deleteall刪除表cga_info中123001的整行數據。
大數據系列之HBase命令行操做

步驟 2 再次查詢表中Rowkey爲123001的信息。
大數據系列之HBase命令行操做

此時表中已經沒有RowKey爲123001的信息,說明行數據刪除成功。

(3) 使用drop刪除數據表

步驟 1 首先disable ‘表的名稱‘,而後再使用drop ‘表的名稱‘刪除數據表。

大數據系列之HBase命令行操做
步驟 2 查詢當前命名空間下的表。
大數據系列之HBase命令行操做

結果顯示錶t_info已經被刪除了。

3.9 過濾數據

Filter容許在Scan過程當中,設置必定的過濾條件,符合條件的用戶數據才返回,全部的過濾器都在服務端生效,以保證被過濾掉的數據不會傳送到客戶端。

示例1:查詢年齡爲38的人。
大數據系列之HBase命令行操做

示例2:查詢名叫Yao的人。

大數據系列之HBase命令行操做

示例3:查詢表中全部人的性別信息。
大數據系列之HBase命令行操做

示例4:查詢表中全部人的地址信息而且找出住在上海的人。
大數據系列之HBase命令行操做

Fliter能夠根據列族,列,版本等更多的條件來對數據進行過濾,這裏只演示了4種過濾方式,帶有過濾條件的RPC查詢請求會把過濾器分發到各個RegionServer,這樣能夠下降網絡傳輸的壓力。

四、總結

​ HBase在存儲上百萬的列數十億的行的狀況下還能實時讀取,值得咱們深刻使用和研究。後面咱們將連載大數據系列博客,歡迎關注和交流。

​ 本文中全部安裝軟件等更多福利請入羣后向管理員獲取。

相關文章
相關標籤/搜索