在不再次调用HBase外壳的情况下对HBase外壳运行多次查询 [英] Running multiples query on Hbase shell without calling hbase shell again

查看:0
本文介绍了在不再次调用HBase外壳的情况下对HBase外壳运行多次查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

再次调用外壳需要时间,我希望通过一次调用HBase外壳来执行多个命令。以下代码仅运行单个查询。

cmd="echo "put 'test', 'row1', 'cf:a', 'value1'"| hbase shell"

我要在单个HBase外壳调用上运行多个查询。

put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'

如何实现此目标?

推荐答案

我知道有4个选项

选项1:分号

echo "put 'test','row1','cf:a','value1'; put 'test','row2','cf:b','value2'; put 'test','row3','cf:c','value3'" | hbase shell -n

选项2:换行符

echo -e "put 'test','row1','cf:a','value1'
put 'test','row2','cf:b','value2'
put 'test','row3','cf:c','value3'" | hbase shell -n

选项3:EXEC

exec hbase shell -n << EOF
put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'
EOF

选项4:外部文件

echo "put 'test', 'row1', 'cf:a', 'value1'" > tmpFile
echo "put 'test', 'row2', 'cf:b', 'value2'" >> tmpFile
echo "put 'test', 'row3', 'cf:c', 'value3'" >> tmpFile
hbase shell -n tmpFile
# obviously this also works: cat tmpFile | hbase shell -n
rm tmpFile

是否包含-n参数取决于您和您的用例。它指示外壳在第一个失败的命令后停止执行,并使用非零退出代码退出。添加了HBASE-11658

我个人更喜欢选项3,因为它可读并且不需要临时文件。

这篇关于在不再次调用HBase外壳的情况下对HBase外壳运行多次查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆