hadoop中HBase子项目入门讲解
?HBase 是Hadoop的一個子項目,HBase采用了Google BigTable的稀疏的,面向列的數據庫實現方式的理論,建立在hadoop的hdfs上,一方面里用了hdfs的高可靠性和可伸縮行,另外一方面里用 了BigTable的高效數據組織形式.可以說HBase為海量數據的real-time相應提供了很好的一個開源解決方案。
??????? HBase提供了一個類似于mysql等關系型數據庫的hbase shell,通過該hbase shell可以對HBase的內的相關表、列族等進行操作;HBase shell的help命令比較詳細的列介紹了HBase所支持的命令.具體使用方法可以參見其API文檔。
??????? 在這里簡單舉個學生表scores的案例進行講解,表數據如下:
name grad????? course:math?? course:english
Tom??? 1????? 89?????????? 97
Jerry? 2????????? 100????????? 90
??????? 這里grad對于表來說是一個列,course對于表來說是一個列族,這個列族由兩個列組成:math和english,當然我們可以根據我們的需要在course中建立更多的列族,如computer,physics,art等相應的列添加入course列族中。
下面列出常使用的hbase shell 命令如下:
名稱
?? ?
命令表達式
創建表
?? ?
create '表名稱', '列名稱1','列名稱2','列名稱N'
添加記錄???? ?
?? ?
put '表名稱', '行名稱', '列名稱:', '值'
查看記錄
?? ?
get '表名稱', '行名稱'
查看表中的記錄總數
?? ?
count? '表名稱'
刪除記錄
?? ?
delete? '表名' ,'行名稱' , '列名稱'
刪除一張表
?? ?
先要屏蔽該表,才能對該表進行刪除,第一步 disable '表名稱' 第二步? drop '表名稱'
查看所有記錄
?? ?
scan "表名稱" ?
查看某個表某個列中所有數據
?? ?
scan "表名稱" , ['列名稱:']
更新記錄
?? ?
就是重寫一遍進行覆蓋
1、建立一個表格 scores 具有兩個列族grad 和courese案例如下:
hbase(main):002:0> create 'scores', 'grade', 'course'
0 row(s) in 4.1610 seconds
?
2、查看當先HBase中具有哪些表
hbase(main):003:0> list
scores
1 row(s) in 0.0210 seconds
3、查看表的構造
hbase(main):004:0> describe 'scores'
{NAME => 'scores', IS_ROOT => 'false', IS_META => 'false', FAMILIES => [{NAME => 'course', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}, {NAME => 'grade', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}]}
1 row(s) in 0.0130 seconds
4、 加入一行數據,行名稱為 Tom 列族grad的列名為”” 值位1
hbase(main):005:0> put 'scores', 'Tom', 'grade:', '1'
0 row(s) in 0.0070 seconds
5、給Tom這一行的數據的列族添加一列 <math,89>
hbase(main):006:0> put 'scores', 'Tom', 'course:math', '89' 0 row(s) in 0.0040 seconds
6、給Tom這一行的數據的列族添加一列 <english,97>
hbase(main):007:0> put 'scores', 'Tom', 'course:english', '97' 0 row(s) in 0.0030 seconds
7、 加入一行數據,行名稱為 Jerry 列族grad的列名為”” 值位2
hbase(main):008:0> put 'scores', 'Jerry', 'grade:', '2' 0 row(s) in 0.0040 seconds
8、給Jerry這一行的數據的列族添加一列 <math,100>
hbase(main):009:0> put 'scores', 'Jerry', 'course:math', '100' 0 row(s) in 0.0030 seconds
9、給Jerry這一行的數據的列族添加一列 <english,90>
hbase(main):010:0> put 'scores', 'Jerry', 'course:english', '90' 0 row(s) in 0.0050 seconds
10、查看scores表中Tom的相關數據
hbase(main):011:0> get 'scores', 'Tom'
COLUMN CELLcourse:english timestamp=1224726394286, value=97course:math timestamp=1224726377027, value=89grade: timestamp=1224726360727, value=1
3 row(s) in 0.0070 seconds
?
11、判斷表是否enable
hbase(main):012:0>is_enabled 'scores'
true
0 row(s) in 0.0110seconds
12、判斷表是否disable
hbase(main):013:0>is_disabled 'scores'
false
0 row(s) in 0.0110seconds
13、刪除表scores
hbase(main):014:0>disable 'scores'
0 row(s) in 2.0590secondshbase(main):030:0>drop 'scores'
0 row(s) in 1.1070seconds
14、查詢表是否存在
hbase(main):015:0>exists 'scores'
Table scores doesexist
0 row(s) in 0.1610seconds
15、查看scores表中所有數據
hbase(main):016:0> scan 'scores'
ROW COLUMN+CELLTom column=course:english, timestamp=1224726394286, value=97Tom column=course:math, timestamp=1224726377027, value=89Tom column=grade:, timestamp=1224726360727, value=1Jerry column=course:english, timestamp=1224726424967, value=90Jerry column=course:math, timestamp=1224726416145, value=100Jerry column=grade:, timestamp=1224726404965, value=2
6 row(s) in 0.0410 seconds
?
16、查看scores表中所有數據courses列族的所有數據
hbase(main):017:0> scan 'scores', ['course:']
ROW COLUMN+CELLTom column=course:english, timestamp=1224726394286, value=97Tom column=course:math, timestamp=1224726377027, value=89Jerry column=course:english, timestamp=1224726424967, value=90Jerry column=course:math, timestamp=1224726416145, value=100
4 row(s) in 0.0200 seconds ?
來源:http://www.yoodb.com/article/display/146
轉載于:https://www.cnblogs.com/MrYoodb/p/4236131.html
總結
以上是生活随笔為你收集整理的hadoop中HBase子项目入门讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个好听的玩具店名字。
- 下一篇: TestNG:org.openqa.se