hbase常用命令及操作
進入HBase客戶端命令操作界面
$ bin/hbase shell
顯示服務器狀態(tài)
查看當前服務器狀態(tài)
hbase> status
查看指定服務器狀態(tài)
hbase> status ‘主機名’
顯示HBase 當前用戶
whoami
查看幫助命令
hbase(main):001:0> help
命名空間
列出所有命名空間
hbase> list_namespace
新建命名空間
hbase> create_namespace ‘ns1’
刪除命名空間
hbase> drop_namespace ‘ns1’
該命名空間必須為空,否則會報錯。
修改命名空間
hbase> alter_namespace ‘ns2’, {METHOD => ‘set’, ‘PROPERTY_NAME’ => ‘PROPERTY_VALUE’}
表
查看當前數(shù)據(jù)庫中有哪些表
hbase(main):002:0> list
查看表是否存在
hbase(main):023:0> exists 表名
hbase(main):023:0> exists “student”
創(chuàng)建一張表
hbase(main):003:0> create ‘student’,‘info’
創(chuàng)建多個列族
hbase> create ‘t1’, {NAME => ‘f1’}, {NAME => ‘f2’}, {NAME => ‘f3’}
禁用一張表
disable ‘表名’
啟用一張表
enable ‘表名’
查看表是否可用、是否不可用
is_enabled ‘表名’
is_disabled ‘表名’
alter
該命令可以改變表和列族的模式,例如:
為當前表增加列族:
hbase> alter ‘hbase_book’, NAME => ‘CF2’, VERSIONS => 2
為當前表刪除列族:
hbase> alter ‘hbase_book’, ‘delete’ => ‘CF2’
向表中存儲一些數(shù)據(jù)
hbase(main):004:0> put ‘student’,‘1001’,‘info:name’,‘Thomas’
hbase(main):005:0> put ‘student’,‘1001’,‘info:sex’,‘male’
hbase(main):006:0> put ‘student’,‘1001’,‘info:age’,‘18’
掃描查看存儲的數(shù)據(jù)
hbase(main):007:0> scan ‘student’
或:查看某個rowkey范圍內(nèi)的數(shù)據(jù)
hbase(main):014:0> scan ‘student’,{STARTROW => ‘1001’,STOPROW => ‘1007’}
查看表結(jié)構(gòu)
hbase(main):009:0> describe ‘student’
更新指定字段的數(shù)據(jù)
hbase(main):009:0> put ‘student’,‘1001’,‘info:name’,‘Nick’
hbase(main):010:0> put ‘student’,‘1001’,‘info:age’,‘100’
查看更新后的數(shù)據(jù):
查看指定行的數(shù)據(jù)
hbase(main):012:0> get ‘student’,‘1001’
或:查看指定行指定列或列族的數(shù)據(jù)
hbase(main):013:0> get ‘student’,‘1001’,‘info:name’
統(tǒng)計一張表有多少行數(shù)據(jù)
hbase(main):020:0> count ‘student’
刪除數(shù)據(jù)
刪除掉某個rowKey中某一列的數(shù)據(jù)hbase(main):016:0> delete 'student','1001','info:sex' 刪除某一個rowKey全部的數(shù)據(jù)hbase(main):015:0> deleteall 'student','1001'清空表數(shù)據(jù)
hbase(main):017:0> truncate ‘student’
修改表名
HBase沒有rename命令,可以通過快照功能修改表名,詳見下述。
刪除表
首先需要先讓該表為disable狀態(tài),使用命令:
hbase(main):018:0> disable ‘student’
然后才能drop這個表,使用命令:
hbase(main):019:0> drop ‘student’
(尖叫提示:如果直接drop表,會報錯:Drop the named table. Table must first be disabled)
快照
查看快照
hbase> list_snapshots ‘ns1’
新建快照
hbase> snapshot ‘sourceTable’, ‘snapshotName’
從快照復制生成一個新表:
hbase> clone_snapshot ‘snapshotName’, ‘gld:student’
分區(qū)
預分區(qū)
在建表時預分10個區(qū):
create’customer’,‘info’,{SPLITS=>[‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’]}
則每個分區(qū)的Start Key和End Key分別為:(~, 1),[1, 2),[2, 3),[3, 4),[4, 5),[5, 6),[6, 7),[7, 8),[8, 9),[9, ~)
查看HDFS是可以看到這個表下有10個文件夾(如果沒有預分區(qū),則只有一個文件夾):
手動分區(qū)
一開始沒有分區(qū):
使用切分鍵’1’一分為二:
hbase>split ‘tableName’,‘splitKey’
hbase>split ‘gld:student’,‘1’
繼續(xù)將第二個Region進行切分,以’2’作為切分鍵:
hbase>split ‘gld:student,1,1538223641947’,‘2’
合并分區(qū)
hbase>merge_region ‘ENCODED_REGIONNAME’,‘ENCODED_REGIONNAME’
hbase(main):125:0> merge_region ‘e306f74bf37ea659cb1945514698eeaa’ ,‘fbd781060852359d2d52a18b728eac77’
總結(jié)
以上是生活随笔為你收集整理的hbase常用命令及操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑的眼泪--无限弹窗3
- 下一篇: CAD笔记