1. 程式人生 > >(二)Hbase基本操作

(二)Hbase基本操作

幫助

  • help 列出所有命令,並且把命令分組展示
  • help “create”: create 命令教學使用

通用命令

  • status: 檢視叢集當前狀態

  • version:檢視hbase的版本資訊
  • whoami:檢視當前使用者資訊

名稱空間

  • hbase中的名稱空間用來分放表,同樣的表名放到不同的名稱空間就可以。
  • list_namespace:列出所有名稱空間  
  • list_namespace_tables 'hbase' : 列出名稱空間‘hbase’中的所有表
  • create_namespace 'test_ns':建立名稱空間 ‘test_ns’  
  • drop_namespace 'test_ns':刪除名稱空間‘test_ns’,注意,‘test_ns’名稱空間中不能有表
  • hbase本身就具備的名稱空間有兩個:default(預設名稱空間),hbase(hdbase自己使用,裡面儲存著很多重要資訊)

DDL命令

針對表的操作,不指定名稱空間,則預設在default名稱空間下。

  • list:列出所有的表
  • create:建立表(若列族不指定version,則預設為1)

create 'namespace:tablename', {NAME => 'familyName', VERSIONS => 5}

create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}

create 't1', 'f1', 'f2', 'f3'

  • disable:禁用表
  • disable_all:禁用所有表
  • enable:啟用表
  • enable_all:啟用所有表
  • drop:刪除表 - 需要先禁用表再刪除表
  • exists:判斷表是否存在

DML命令

  • put:向表中存入資料

put 'ns1:t1', 'r1', 'c1', 'value'

put 't1', 'r1', 'c1', 'value'

put 't1', 'r1', 'c1', 'value', ts1

put 't1', 'r1', 'f1:c1','value' :若列族f1沒有列c1,則會自動新增該列,並儲存資料

  • get - 從表中獲取 某一行 或 某一個單元格的值

get 'ns1:t1', 'r1'

get 't1', 'r1'

get 't1', 'r1', {COLUMN => 'c1'}

get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

  • scan - 掃描表

scan 'ns1:t1'

scan 't1'

scan 't1',{RAW=>true,VESIONS=>5} #RAW=>true返回所有資料 VERISONS=>5返回最近的5個版本

  • delete -- 刪除指定單元格的資料

delete 'ns1:t1', 'r1', 'c1', ts1

delete 't1', 'r1', 'c1', ts1

  • truncate -- 摧毀並重建表 等價於 刪除表中所有資料的操作 但是效率比 deleteall效率高