从hbase外壳中的扫描获取输出

从hbase外壳中的扫描获取输出,hbase,Hbase,是否有任何方法可以将hbase外壳中的扫描结果输出到文件?我假设这很容易,但我在文档中找不到任何东西。我知道这篇文章很老,但我自己也在搜索有关HBase的内容,并发现了它 我不知道这是否是最好的方法,但您可以使用HBase提供的脚本选项。只需打开一个shell(最好转到HBase的目录bin)并运行 其中foo是要扫描的表的名称。如果你打开myText,你会在那里看到结果。希望我能帮忙 另一个使用EOF here doc的选项,可能更可定制: hbase shell <<EOF &g

是否有任何方法可以将hbase外壳中的扫描结果输出到文件?我假设这很容易,但我在文档中找不到任何东西。

我知道这篇文章很老,但我自己也在搜索有关HBase的内容,并发现了它

我不知道这是否是最好的方法,但您可以使用HBase提供的脚本选项。只需打开一个shell(最好转到HBase的目录bin)并运行


其中foo是要扫描的表的名称。如果你打开myText,你会在那里看到结果。希望我能帮忙

另一个使用EOF here doc的选项,可能更可定制:

hbase shell <<EOF >myText
scan 'foo'
EOF

hbase shell您也可以在此处使用字符串(如果您的shell支持):


$hbase shellex:file.sh包含
扫描“tablename”

执行以下命令将结果捕获到日志文件

hbase shell < file.sh(which contains hbase commands) > output.lo
hbase shelloutput.lo

工作起来很有魅力:)此解决方案的问题在于hbase相当健谈,因此您不仅可以获得命令输出,还可以获得大量hbase对话。如果你想获取数据并对其进行解析,那就太麻烦了。@KenWilliams,它也有点慢。你知道有没有更快的方法。实际上,我必须在循环中执行一个命令24次,这需要花费很多时间,我不想编写java代码来完成这项工作。@sahu我不知道-最好的选择可能是先将结果写入HDFS,然后从HDFS导出到本地文件系统。这很有效!需要直接在shell中运行。不在HBase shell提示符中
$ hbase shell <<< "scan 'sometable'" > myoutput.txt
hbase shell < file.sh(which contains hbase commands) > output.lo