我几天前曾在Hadoop 2.5上安装了Hbase 1.0.1 我的问题是Get命令不会返回任何行。 我尝试使用不同的表,通过shell或API ...而没有
如果您对此有任何疑问,请与我分享。
hbase(main):020:0> get 'teste', 'camp:name'
COLUMN CELL
0 row(s) in 0.0930 seconds
hbase(main):021:0> scan 'teste'
ROW COLUMN+CELL
1 column=camp:nume, timestamp=1431128619811, value=David
1 row(s) in 0.1720 seconds
答案 0 :(得分:1)
那是因为你错过了行键,它认为你正在获得不存在的'camp:nume'行。
使用它来获取第1行的所有列:
hbase(main):020:0> get 'teste', '1'
使用它来获取第1行的'camp:nume'列:
hbase(main):020:0> get 'teste', '1', 'camp:nume'
仅供参考,在HBase Shell中,您可以运行一个没有参数的简单命令来查看帮助:
hbase(main):005:0> get
ERROR: wrong number of arguments (0 for 2)
Here is some help for this command:
Get row or cell contents; pass table name, row, and optionally
a dictionary of column(s), timestamp, timerange and versions. Examples:
hbase> get 't1', 'r1'
hbase> get 't1', 'r1', {TIMERANGE => [ts1, ts2]}
hbase> get 't1', 'r1', {COLUMN => 'c1'}
hbase> get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1}
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4}
hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4}
hbase> get 't1', 'r1', 'c1'
hbase> get 't1', 'r1', 'c1', 'c2'
hbase> get 't1', 'r1', ['c1', 'c2']
The same commands also can be run on a reference to a table (obtained via get_table or
create_table). Suppose you had a reference t to table 't1', the corresponding commands would be:
hbase> t.get 'r1'
hbase> t.get 'r1', {TIMERANGE => [ts1, ts2]}
hbase> t.get 'r1', {COLUMN => 'c1'}
hbase> t.get 'r1', {COLUMN => ['c1', 'c2', 'c3']}
hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1}
hbase> t.get 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4}
hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4}
hbase> t.get 'r1', 'c1'
hbase> t.get 'r1', 'c1', 'c2'
hbase> t.get 'r1', ['c1', 'c2']