溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)系列之HBase命令行操作

發(fā)布時(shí)間:2020-07-13 11:49:36 來源:網(wǎng)絡(luò) 閱讀:457 作者:萬和IT教育 欄目:大數(shù)據(jù)

1、課程簡(jiǎn)介

  • 本文章先會(huì)介紹HBase命令行,接著會(huì)介紹java代碼對(duì)hbase中的表進(jìn)行增刪改查。
  • 本文章中所有命令均在CentOS-6.4-x86_64,hadoop-2.5.2,jdk1.8.0_152,zookeeper-3.4.11,hbase-1.2.6中運(yùn)行通過,為減少linux權(quán)限對(duì)初學(xué)者造成影響,所有命令均在linux的root權(quán)限下進(jìn)行操作。

2、理論回顧

  • HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),是行業(yè)中最常用的NoSQL數(shù)據(jù)庫。HBase正確運(yùn)行的前提是安裝好Hadoop。
  • Hadoop技術(shù)本身包含HDFS、Map/Reduce。HDFS作海量數(shù)據(jù)存儲(chǔ)之用;M/R作海量數(shù)據(jù)計(jì)算之用。
  • HDFS包含namenode、datanode。namenode對(duì)datanode中的數(shù)據(jù)建立了索引。
  • zookeeper作為協(xié)調(diào)服務(wù),為namenode提供了高可用性。

3、命令行基本操作

注意:

? 在執(zhí)行以下命令之前,確認(rèn)以下組件啟動(dòng)成功:zookeeper, hdfs, yarn, hbase。

? 在hbase安裝目錄的bin下面,執(zhí)行如下命令進(jìn)入hbase命令行:
大數(shù)據(jù)系列之HBase命令行操作

3.1創(chuàng)建普通表

步驟 1 創(chuàng)建普通表的語法為:create ‘表的名稱’,‘列族的名稱’。

輸入命令:
大數(shù)據(jù)系列之HBase命令行操作

創(chuàng)建表“t_info”成功。

步驟 2 –list 功能:查看系統(tǒng)中共有多少個(gè)普通表。

大數(shù)據(jù)系列之HBase命令行操作
由此看出系統(tǒng)中已經(jīng)存在了3張表了。

3.2 創(chuàng)建namespace

創(chuàng)建namespace的語法為:create_namespace ‘名稱‘。
大數(shù)據(jù)系列之HBase命令行操作

步驟1 在指定namespace下創(chuàng)建表

在指定namespace下創(chuàng)建表:create ‘namespace的名稱:表名‘,‘列族‘。
大數(shù)據(jù)系列之HBase命令行操作
步驟2 查看指定namespace下的表

查看指定namespace下的表:list_namespace_tables ‘namespace的名稱‘’。
大數(shù)據(jù)系列之HBase命令行操作

3.3 增加數(shù)據(jù)

增加數(shù)據(jù):put ‘表的名稱‘,‘RowKey’,‘列的名稱’,‘具體的賦值’。

將一個(gè)名字為Kobe,居住在洛杉磯的40歲男人的信息輸入到表“cga_info”中:
大數(shù)據(jù)系列之HBase命令行操作

3.4 get方式查詢數(shù)據(jù)

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

精確查詢某一個(gè)RowKey中存儲(chǔ)的內(nèi)容:get ‘表的名稱‘,’RowKey‘
大數(shù)據(jù)系列之HBase命令行操作
步驟 2 精確查詢某一個(gè)RowKey中的一個(gè)單元格中存儲(chǔ)的內(nèi)容。

語法:get ‘表的名稱‘,’RowKey‘,‘列名’
大數(shù)據(jù)系列之HBase命令行操作

3.5 scan方式查詢數(shù)據(jù)

步驟1 查詢表中某個(gè)列族下所有列的信息:scan ‘表的名稱‘,{Columns=>’列‘}

大數(shù)據(jù)系列之HBase命令行操作

步驟2 查詢表中具體的一個(gè)列中存儲(chǔ)的信息。

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

大數(shù)據(jù)系列之HBase命令行操作

3.6 指定條件查詢數(shù)據(jù)

步驟0 加入姚明信息到數(shù)據(jù)庫中
大數(shù)據(jù)系列之HBase命令行操作

步驟 1 查詢RowKey為“123001”和“123002”中的數(shù)據(jù)。
大數(shù)據(jù)系列之HBase命令行操作
步驟 2 查詢Rowkey為“123001”和“123002”中列名稱為name的單元格中存儲(chǔ)的信息。
大數(shù)據(jù)系列之HBase命令行操作

3.7 更新數(shù)據(jù)

步驟 1 首先查詢表中Rowkey為123001的年齡信息。
大數(shù)據(jù)系列之HBase命令行操作

步驟 2 更改表中Rowkey為123001的年齡信息。
大數(shù)據(jù)系列之HBase命令行操作

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

大數(shù)據(jù)系列之HBase命令行操作

由步驟2和步驟3的結(jié)果比較可得,年齡信息已經(jīng)被更新。

3.8 刪除數(shù)據(jù)
(1)使用delete刪除某一列數(shù)據(jù)

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

大數(shù)據(jù)系列之HBase命令行操作

步驟 2 使用delete刪除123001中age列所存儲(chǔ)的數(shù)據(jù)。

大數(shù)據(jù)系列之HBase命令行操作

步驟 3 再次查詢表中Rowkey為123001的信息。
大數(shù)據(jù)系列之HBase命令行操作

由步驟1和步驟3的結(jié)果比較可得,年齡信息已經(jīng)被刪除了。

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

步驟 1 使用deleteall刪除表cga_info中123001的整行數(shù)據(jù)。
大數(shù)據(jù)系列之HBase命令行操作

步驟 2 再次查詢表中Rowkey為123001的信息。
大數(shù)據(jù)系列之HBase命令行操作

此時(shí)表中已經(jīng)沒有RowKey為123001的信息,說明行數(shù)據(jù)刪除成功。

(3) 使用drop刪除數(shù)據(jù)表

步驟 1 首先disable ‘表的名稱‘,然后再使用drop ‘表的名稱‘刪除數(shù)據(jù)表。

大數(shù)據(jù)系列之HBase命令行操作
步驟 2 查詢當(dāng)前命名空間下的表。
大數(shù)據(jù)系列之HBase命令行操作

結(jié)果顯示表t_info已經(jīng)被刪除了。

3.9 過濾數(shù)據(jù)

Filter允許在Scan過程中,設(shè)置一定的過濾條件,符合條件的用戶數(shù)據(jù)才返回,所有的過濾器都在服務(wù)端生效,以保證被過濾掉的數(shù)據(jù)不會(huì)傳送到客戶端。

示例1:查詢年齡為38的人。
大數(shù)據(jù)系列之HBase命令行操作

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

大數(shù)據(jù)系列之HBase命令行操作

示例3:查詢表中所有人的性別信息。
大數(shù)據(jù)系列之HBase命令行操作

示例4:查詢表中所有人的地址信息并且找出住在上海的人。
大數(shù)據(jù)系列之HBase命令行操作

Fliter可以根據(jù)列族,列,版本等更多的條件來對(duì)數(shù)據(jù)進(jìn)行過濾,這里只演示了4種過濾方式,帶有過濾條件的RPC查詢請(qǐng)求會(huì)把過濾器分發(fā)到各個(gè)RegionServer,這樣可以降低網(wǎng)絡(luò)傳輸?shù)膲毫Α?/p>

4、總結(jié)

? HBase在存儲(chǔ)上百萬的列數(shù)十億的行的情況下還能實(shí)時(shí)讀取,值得我們深入使用和研究。后面我們將連載大數(shù)據(jù)系列博客,歡迎關(guān)注和交流。

? 本文中所有安裝軟件等更多福利請(qǐng)入群后向管理員獲取。

?

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI