有时我想从HBase shell中的运行命令退出,例如扫描操作通常需要花费太多时间.
所以我想停止运行这个命令,但我不想退出HBase shell.
通常的方法是我停止运行命令,我使用Ctrl + C,它可以停止运行命令,但它也退出HBase shell,然后我需要花更多的时间来重新输入HBase shell.
有没有更好的方法来解决这个问题?
我试图将数据从HBase Shell导出到我可以解析的文本文件,并添加到msysql数据库.
我目前正在使用以下命令:
echo "scan 'registration',{COLUMNS=>'registration:status'}" | hbase shell > registration.txt
Run Code Online (Sandbox Code Playgroud)
它导出从hbase shell到registration.txt的所有内容.
如何删除shell简介和摘要,只需将数据行附加到文本文件中:
例如:Shell我想省略:
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.5-mapr, Wed May 1 7:42:07 PDT 2013
Run Code Online (Sandbox Code Playgroud)
总结我想省略:
ROW COLUMN+CELL
4419 row(s) in 12.9840 seconds
Run Code Online (Sandbox Code Playgroud) 我将我的密钥保存为字节数组.在HBase Shell中,当我查看我的密钥时,我看到非十六进制值...我没有启用任何编码,我没有启用任何压缩.
这是一个样本......什么是VNQ?什么是BBW?我猜是有某种编码在进行?
\xFB\xC6\xE8\x03\xF0VNQ\x8By\xF6\x89D\xC1\xBBW\x00\x00\x00\x00\x00\x00\x01\xF3\x00\x00\x00\x00\x00\x07\xA1\x1F
Run Code Online (Sandbox Code Playgroud) 使用HBase shell时,我得到了大量的日志记录,包括INFO和DEBUG消息.虽然这在学习HBase内部方面很有意思,但它非常冗长并且可以掩盖输出.
我已尝试以多种不同的方式更改日志记录级别,包括此处所述,虽然一些警告确实消失,但我仍然会收到大量的INFO和DEBUG消息,即:
18:50:49.500 [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
18:50:49.516 [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:host.name=ip-10-234-8-223.ec2.internal
18:50:49.517 [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.version=1.7.0_65
18:50:49.517 [main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.vendor=Oracle Corporation
Run Code Online (Sandbox Code Playgroud)
除了$ HBASE_HOME/conf/log4j.properties之外,我还尝试在$ HBASE_HOME/bin/hbase shell脚本之外运行shell.即使设置log4j.rootLogger = OFF也没有帮助.Logger.getRootLogger().setLevel(Level.WARN);根据上述链接,尝试使用也不起作用.
这些消息是由JRuby记录器发出的吗?它们是否被其他组件作为文本返回到shell?
我有一些关于 HBase Shell 命令工具的问题:
1: How to list all column family names (just names!) in a table?
2: How to count the number of rows in a column family?
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 HBase 表中删除所有数据,该表的时间戳早于指定的时间戳。这包含所有列族和行。
有没有办法使用shell和Java API来完成?