Hbase shell的基本操作

QF董懂發表於2018-04-27

  HBase的命令列工具,最簡單的介面,適合HBase管理使用,可以使用shell命令來查詢HBase中資料的詳細情況。安裝完HBase之後,啟動hadoop叢集(利用hdfs儲存),啟動zookeeper,使用start-hbase.sh命令開啟hbase服務,最後在shell中執行hbase shell就可以進入命令列介面

  Habse shell的help對語法的介紹很全,hbase shell 的操作分為 10類,j本文只介紹前4類常用的,分別是:gerneral,ddl,namespace,dml

  1. Gerneral

  status:查詢當前伺服器狀態。

Hbase shell的基本操作

  Version:檢視當前版本

  

Hbase shell的基本操作

  Whoami:查詢當前hbase使用者

Hbase shell的基本操作

  Table_help:表的引用,通過獲取一張表的引用來對這張表進行新增刪除資料等等操作,現在不推薦使用

  2. DDL

  Create:建立一個表

  ###建立一個表名為qianfeng,cf為列族

  create 'qianfeng','cf'

  

Hbase shell的基本操作

  list:列出HBase的所有表

  

Hbase shell的基本操作

  · disable:禁用一張表

  · ##禁用表‘qianfeng’

  · disable ‘qianfeng’

  · is_disabled:表是否被禁用

  · ##驗證表‘qianfeng’是否被禁用

  · is_disabled ‘qianfeng’

  ·

Hbase shell的基本操作

  · enable: 啟用一張表

  · ##啟用表‘qianfeng’

  · enable ‘qianfeng’

  · is_enabled:表是否被啟用

  · ##驗證表‘qianfeng’是否被啟用

  · is_enabled ‘qianfeng’

  ·

Hbase shell的基本操作

  · describe:檢視錶的描述

  · ##檢視‘qianfeng’表的描述資訊

  · describe ‘qianfeng’

  ·

Hbase shell的基本操作

  · alter:修改表的結構

  · ##給表‘qianfeng’加入一個列族‘cf1’

  · alter ‘qianfeng’,’cf1’

  ·

Hbase shell的基本操作

  · exists:驗證表是否存在

  · ##驗證表‘qianfeng’是否存在

  · exists ‘qianfeng’

  ·

Hbase shell的基本操作

  · drop:刪除表,表需先禁用,然後才能刪除

  · ##刪除表‘qianfeng’

  · disable ‘qianfeng’

  · drop ‘qianfeng’

  ·

Hbase shell的基本操作

  · disable_all:禁用多個表

  drop_all:刪除多個表,表需先禁用,然後才能刪除

  3. Namespace

  create_namespace:建立名稱空間,相當於關係型資料庫裡建立一個資料庫

  ##建立一個名稱空間名為‘qf’,並新增屬性

  create_namespace ‘qf’, {'PROPERTY_NAME'=>'PROPERTY_VALUE'}

  alter_namespace:修改,新增,刪除名稱空間的屬性

  ##設定名稱空間qf的屬性

  alter_namespace 'qf', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

  ##刪除名稱空間qf的屬性

  alter_namespace 'qf', {METHOD => 'unset', NAME=>'PROPERTY_NAME'}

  describe_namespace:獲取名稱空間的描述

  ##獲取名稱空間‘qf’的描述資訊

  describe_namespace ‘qf’

  

Hbase shell的基本操作

  drop_namespace:刪除名稱空間

  ##刪除名稱空間‘qf’

  drop_namespace ‘qf’

  list_namespace:檢視所有名稱空間

  

Hbase shell的基本操作

  list_namespace_tables:檢視名稱空間下的所有表

  ##檢視名稱空間‘ns1’下的所有表

  list_namespace_tables ‘ns1’

Hbase shell的基本操作

  4. DML

  先在名稱空間‘qianfeng’(如果沒有這個名稱空間要先建立此名稱空間)下建立一張表test,列族為‘cf’作為測試用

  create ‘qianfeng:test’,’cf’

  put:新增cell(資料)

  # #向名稱空間qianfeng下表test的rowkey為r1的列族下新增資料

  put 'qianfeng:test','r1','cf:uname','zhangsan'

  scan:掃描全表

  scan ‘qianfeng:test’

  

Hbase shell的基本操作

  get:得到某一列或cell的資料。

  ##向名稱空間qianfeng下表test的rowkey為r1的列族下新增資料

  put 'qianfeng:test','r1','cf:age','23'

  ##獲取列族cf下rowkey為r1的所有資料

  get ‘qianfeng:test’,’r1’

  

Hbase shell的基本操作

  ##獲取列族cf下rowkey為r1,列名為uname的資料(獲取一個cell)

  get 'qianfeng:test','r1','cf:uname'

  

Hbase shell的基本操作

  truncate:清空表,不用disable (只是清空資料)

  ##清空表‘qianfeng:test’

  truncate ‘qianfeng:test’

  

Hbase shell的基本操作

  檢視‘qianfeng’下所有的表

  

Hbase shell的基本操作

  以上為hbase shell指令碼的基礎操作,都應該熟練掌握。在掌握hbase shell指令碼的基礎上學習hbase 的java api,會顯得事半功倍。

相關文章