好程式設計師大資料學習路線分享Hbase指令學習

好程式設計師IT發表於2019-08-16

好程式設計師大資料學習路線分享Hbase指令學習

啟動:

1、啟動zk  zkServer.sh start

2、啟動hdfs   start-dfs.sh

3、啟動hbase服務 start-hbase . sh

         (啟動報錯的話要kill QuorumPeerMain的程式 在重新啟動

4啟動客戶端: hbase shell

時間必須同步,不然也會報錯


       TIMERANGE =>[xxxxx,xxxxx] 時間戳的陣列    range範圍

       TIMESTAMP =>xxxxx    時間戳單數         stamp 標誌

       xy 02:16010

       xy 02:16010

Hbase沒有庫的概念,屬於無模式,但是有 名稱空間(namespace 相當於庫)和 (相當於表)的概念

Hbase預設有兩個組: D eflult 和 H base

list         顯示hbase中的表

---------------------------------------------------------------------------------------------------------------------------------

create 'user', 'info', 'data'       建立user表,包含info、data兩個列族, 預設在(default)

create ' ns1 :user', 'info', 'data'     在ns1(namesqpce)下建了user

create 'user1',{ NAME=>'info', BLOOMFILTER => 'ROWCOL',VERSIONS => '2'}

alter  'user1',{ NAME=>' data ' ,BLOOMFILTER => 'ROWCOL',VERSIONS => '2'}

(有則更新更改,無則新增,可以利用alter新增data的列簇)

create 'user2', 'f1', SPLITS => ['10', '20', '30', '40']  --事先分配好region所管轄的rowkey的範圍


 插入資料:(不能一次性插入多列)

put 'user','rk01','info:name','xuyu'

put 'user','rk01','info:age','18'

put 'user','rk01','info:sex','boy'

put 'user','rk01','data:pic','picture'

 更新資料

put 'user','rk01','info:name','xuyu1111'    查詢的時候name就變成xuyu1111了


---------------------------------------------------------------------------------------------------------------------------------

(刪除整個表的時候要禁用表,就像檔案在開啟的時候無法重新命名一樣)

1disable 'test'    禁用test表

2drop 'test'      刪除test表

3list            發現test表已經被刪除了

4 enable 'user'    啟用表

刪除列簇

alter 'user1',  NAME => 'info', METHOD => 'delete'

alter 'user1', 'delete' => 'info'


   刪除資料

     delete 'user','rk01','info:name'  刪除name 

     delete 'user', 'rk01', 'info:name', 1534126109598  刪除時間戳為xxx 的name

刪除指定的版本:(往上刪除版本)

delete 'user','rk01','info:name',TIMESTAMP=>1534138686498

表判斷

exists 'user'      判斷表

disable 'user'     禁用表

enable 'user'     開啟表

desc 'user'       顯示錶的屬性資訊

統計表:(統計效率較差,不建議使用)

count 'user'

清空表:

truncate 'user'


---------------------------------------------------------------------------------------------------------------------------------

(重新命名整個表的時候要禁用表,就像檔案在開啟的時候無法重新命名一樣)

      1disable 'user'



有則更新,無則新增

alter 'user', NAME => 'f1'

alter  'user1',{ NAME=>' data ' ,BLOOMFILTER => 'ROWCOL',VERSIONS => '2'}


---------------------------------------------------------------------------------------------------------------------------------

describe 'user'          會顯示name=data,name=info等一系列屬性資訊

表掃描(scan)

scan 'user'              對錶進行掃描,會顯示錶中的內容資料

scan 'user',{COLUMNS => ['info:name','info:age']}   掃描指定的部分

設定查詢條件:(包頭不包尾)

scan 'user',{COLUMNS => ['info:name','info:age'],STARTROW=>'rk00002',LIMIT=>2}

scan 'user',{COLUMNS => ['info:name','info:age'],STARTROW=>'rk01',ENDROW=>'rk04',LIMIT=>2}

 注意:這裡的startrow和endrow只的都是rowkey(相當於主鍵)

查詢資料:(GET)

get 'user','rk01'                     獲取全部資料

get 'user','rk01',{TIMESTAMP=>1534126755704}

get 'user','rk01','info'                獲取 列簇為info 資料

get 'user','rk01','data'                獲取 列簇為data 資料

get 'user','rk01','info:name'           只獲取info中的name

獲取user表中row key為rk0001,info、data列族的資訊

get 'user', 'rk01', 'info', 'data'          獲取info和data資料

get 'user','rk01',{COLUMN=>['info','data']}

get 'user', 'rk01', {COLUMN => ['info:name', 'data:pic']}

獲取user表中row key為rk0001,列族為info,版本號最新5個的資訊

get 'user', 'rk01', {COLUMN => 'info', VERSIONS => 2}

get 'user', 'rk01', {COLUMN => 'info:name', VERSIONS => 5}

get 'user', 'rk01', {COLUMN  => 'info:name', VERSIONS => 5,TIMERANGE => [1534123523054,xxxxxxxxxxxxxxx]}         獲取5個版本號中這2個時間戳的name

---------------------------------------------------------------------------------------------------------------------------------

N amespace 下的操作

list_namespace       列舉出所有的namespace(相當於庫),預設有2個組:default和hbase

create_namespace 'ns1'     建立一個名字為ns1的namespace(相當於庫)

create ' ns1: user', 'info', 'data'     在ns1(namesqpce)下建了user, 在user前加ns1:

list_namespace_tables ' ns1 ' 檢視ns1下的表

alter_namespace  'ns1', {METHOD => 'set' , 'NAME' => 'gjz1'}   修改

alter_namespace 'ns1', {METHOD => ' unset',  NAME => 'NAME'}  刪除

drop_namespace 'ns1'   ###只能刪除一個空的namespace

describe_namespace 'ns1'      檢視內容描述


---------------------------------------------------------------------------------------------------------------------------------


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2653924/,如需轉載,請註明出處,否則將追究法律責任。

相關文章