1. 程式人生 > >HBase的命令列

HBase的命令列

HBase命令

1,指導手冊

hbase

2,HBase Shell的一些基本操作命令

在這裡插入圖片描述

基本操作

  • 1, 進入 HBase 命令列介面

      hbase shell		#任意一臺安裝HBase的伺服器節點
    
  • 2,檢視幫助資訊

      hbase(main):001:0> help              	#獲取所有命令的幫助資訊
      hbase(main):001:0> help "ddl"			#獲取一組命令的幫助資訊
      hbase(main):001:0> help "list"		#獲取單獨命令的幫助資訊
    
  • 3,查詢伺服器狀態

      hbase(main):001:0> status
    
  • 4, 查詢 HBase 版本

      方法一:hbase(main):001:0> version
      方法二:hbase version
    
  • 5,退出 HBase 命令列介面

      方法一:hbase(main):008:0> exit
      方法二:hbase(main):001:0> quit
    

DDL(資料定義語言)操作

  • 1,建立表

    • 預設版本
      語法(預設版本號為1)

        create 'table_name','column_family1','column_family2',......
      

      示例:建立表students,有兩個列簇:base_info,course_info

        hbase(main):002:0> create 'students','base_info', 'course_info'
      
    • 自己設定版本號
      語法:

        create 'table_name', {NAME => 'column_family', VERSIONS => 'versions'},......
      

      示例:建立表student,有兩個列簇:base_info,course_info,版本號前者為3,後者為1

        hbase(main):001:0> create 'student',{NAME => 'base_info',VERSIONS => 3},{NAME => 'course_info',VERSIONS => 1}
      
  • 2,查看錶

      命令:hbase(main):003:0> list
    
  • 3,查看錶結構

      describe 'table_name'
    

    示例:檢視student的表結構

      hbase(main):005:0> describe 'student'
    
  • 4,修改表結構
    語法:alter ‘table_name’, {NAME => ‘column_family1’, VERSIONS => ‘versions’}
    示例:修改students列簇base_info的版本號

      hbase(main):009:0> alter 'students',{NAME => 'base_info', VERSIONS => 3}
    
  • 5, 刪除列簇
    語法:alter ‘table_name’, {NAME => ‘column_family1’, METHOD => ‘delete’}
    示例:將表students中的列簇base_info刪除

      hbase(main):016:0> alter 'students',{NAME => 'base_info',METHOD => 'delete'}
    

    檢視是否刪除成功:

      hbase(main):017:0> describe 'students'
    
  • 6,刪除表
    步驟:
    disable(禁用)表
    drop(刪除)表
    示例:將表students刪除

      disable表:hbase(main):019:0> disable 'students'
      drop表:hbase(main):020:0> drop 'students'
    
  • 7,查詢表是否存在
    語法:exists ‘table_name’
    示例:查詢student表是否存在

      hbase(main):005:0> exists 'student'
    
  • 8,判斷表是否禁用
    語法:is_disabled ‘table_name’
    示例:判斷student表是否禁用

      hbase(main):026:0> is_disabled 'student'
    
  • 9,判斷表是否啟用
    語法:is_enabled ‘table_name’
    示例:判斷student表是否啟用

      hbase(main):005:0> is_enabled 'student'
    

DML(資料操作語言)操作

1,新增資料

語法:put ‘table_name’,‘rowkey’,‘column_family:column’,‘value’,‘timestamp’
示例:為表student新增資料

	put 'student','1001','base_info:name','shiny'

2,查詢資料

  • 1,掃描整個表
    語法:scan ‘table_name’,{COLUMNS => [ ‘column_family:column’,… ], LIMIT => num}
    (1)掃描表student,base_info:name的前2條資料

      hbase(main):004:0> scan 'student',{COLUMNS => 'base_info:name',LIMIT => 2}
    

    (2)掃描表student的前2條資料

      hbase(main):005:0> scan 'student',{LIMIT => 2}
    
  • 2,查詢某行記錄
    語法:
    (1)根據行鍵:get ‘table_name’,‘rowkey’
    (2)根據行鍵和列簇:get ‘table_name’,‘rowkey’,‘column_family’
    (3)根據行鍵、列簇和列:get ‘table_name’,‘rowkey’,‘column_family:column’
    示例:
    (1)查詢表student,行鍵1001中所有的資料

      hbase(main):073:0> get 'student','1001'
    

    (2)查詢表student,行鍵1001中的course_info下所有的列值

      hbase(main):001:0> get 'student','1001','course_info'
    

    (3)查詢表student,行鍵1001中的base_info下的name值

      hbase(main):072:0> get 'student','1001','course_info:Math'
    

    只會顯示最新版本的資料

  • 3,查詢表中資料行數
    語法:count ‘table_name’
    示例:查詢表student的行數(行鍵總數)

      hbase(main):006:0> count 'student'
    

3,修改資料

語法:put ‘table_name’,‘rowkey’,‘column_family:column’,‘value’
即重新put一下將原先的資料覆蓋
示例:將表student,1001中course_info:Math的值修改為100

hbase(main):009:0> put 'student','1001','course_info:Math','100'	

查詢多個版本資料
(1)顯示最新版本的資料

hbase(main):072:0> get 'student','1001','base_info:name'

(2)通過timestamp來獲取對應版本的資料(前提知道timestamp)

hbase(main):013:0> get 'student','1001',{COLUMN=>'course_info:Math',TIMESTAMP => 1500542224220}

(3)通過versions來獲取多個版本的資料

hbase(main):019:0> get 'student','1001',{COLUMN=>'course_info:Math',VERSIONS => 2}

4,刪除資料

  • 1,刪除行中某個列值
    語法:delete ‘table_name’,‘rowkey’,‘column_family:column’,‘timestamp’
    必須指定列名,指定時間戳說明刪除指定版本資料
    示例:刪除表student,1001中的course_info:Math的資料(所有版本)

      hbase(main):015:0> delete 'student','1001','course_info:Math'
    
  • 2,刪除行
    語法:deleteall ‘table_name’,‘rowkey’
    不指定列名,刪除整行資料
    示例:刪除表student,1001的所有資料

      hbase(main):018:0> deleteall 'student','1001'
    
  • 3,清空表
    語法:truncate ‘table_name’
    示例:清空表student

      hbase(main):020:0> truncate 'student'