HBase Shell使用记录

1.以非交互式运行hbase shell

用法:hbase shell -n
务必转义HBase命令中的字符,否则shell将会解释这些字符

例子

echo "describe 'test'"|hbase shell -n

2.文件方式运行hbase shell命令

hbase shell filename

将路径作为命令的唯一参数传递给命令文件hbase shell。每个命令都会执行并显示其输出。如果您未exit在脚本中包含该命令,则会返回到HBase shell提示符。没有办法以编程方式检查每个单独的命令是否成功或失败。此外,尽管您看到每个命令的输出,但命令本身并未回显到屏幕,因此可能难以将命令与其输出对齐

3.将VM选项传递给Shell

通过使用环境变量HBASE_SHELL_OPTS

HBASE_SHELL_OPTS="-verbose:gc -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:$HBASE_HOME/logs/gc-hbase.log" ./bin/hbase shell

4.表变量

HBase 0.95引入了将表分配给jruby变量的功能。表引用可以用来执行数据读写操作,比如放入,扫描,以及管理功能,如禁用,删除,描述表等。

将该表分配给一个变量并在jruby shell代码中使用变量操作

hbase(main):001:0> t=create 'lishengping_test2','base_info'
0 row(s) in 1.3820 seconds

=> Hbase::Table - lishengping_test2
hbase(main):002:0> t.put '20180525','base_info:address','touna'
0 row(s) in 0.2270 seconds
hbase(main):003:0> t.scan
ROW                                          COLUMN+CELL                                                                                                                    
 20180525                                    column=base_info:address, timestamp=1527232907078, value=touna                                                                 
1 row(s) in 0.0730 seconds
hbase(main):004:0> t.describe
Table lishengping_test2 is ENABLED                                                                                                                                          
lishengping_test2                                                                                                                                                           
COLUMN FAMILIES DESCRIPTION                                                                                                                                                 
{NAME => 'base_info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSI
ON => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                                                    
1 row(s) in 0.0420 seconds
hbase(main):005:0> t.disable
0 row(s) in 2.3950 seconds
hbase(main):006:0> t.drop
0 row(s) in 1.2860 seconds

如果该表已被创建,则可以使用get_table方法将一个表分配给一个变量:

hbase(main):008:0> t=get_table 'lishengping_test'

5.调试

shell调试开关
您可以在shell中设置一个调试开关,以查看更多输出 - 例如,运行命令时出现更多的异常堆栈跟踪:

hbase> debug 

DEBUG日志级别
要在shell中启用DEBUG级日志记录,请使用该-d选项启动它。

$ ./bin/hbase shell -d

计数

Count命令返回表中的行数。配置正确的CACHE时速度非常快

hbase> count '', CACHE => 1000

上述计数一次取1000行。如果行很大,请将CACHE设置为较低。默认是每次读取一行。

你可能感兴趣的:(HBase)