python—使用子进程访问hbase

l3zydbqr  于 2021-06-10  发布在  Hbase
关注(0)|答案(2)|浏览(369)

我尝试使用简单的命令通过python中的子进程访问hbase。以下代码提供了错误的输出:

import subprocess
cmd=['hbase','shell','list']
subprocess.call(cmd)

我没有给出hbase中的表列表,而是得到以下输出:

Usage: hbase [<options>] <command> [<args>]
 Options:
  --config DIR    Configuration direction to use. Default: ./conf
  --hosts HOSTS   Override the list in 'regionservers' file

Commands:
Some commands take arguments. Pass no args or -h for usage.
shell           Run the HBase shell
hbck            Run the hbase 'fsck' tool
snapshot        Create a new snapshot of a table
snapshotinfo    Tool for dumping snapshot information
wal             Write-ahead-log analyzer
hfile           Store file analyzer
zkcli           Run the ZooKeeper shell
upgrade         Upgrade hbase
master          Run an HBase HMaster node
regionserver    Run an HBase HRegionServer node
zookeeper       Run a Zookeeper server
rest            Run an HBase REST server
thrift          Run the HBase Thrift server
thrift2         Run the HBase Thrift2 server
clean           Run the HBase clean up script
classpath       Dump hbase CLASSPATH
mapredcp        Dump CLASSPATH entries required by mapreduce
pe              Run PerformanceEvaluation
ltt             Run LoadTestTool
version         Print the version
CLASSNAME       Run the class named CLASSNAME

如何发出subprocess命令?

lstz6jyr

lstz6jyr1#

如果您需要从python访问hbase,我强烈建议您查看happybase模块。
在过去的4年里,我一直在生产中使用它们,它们简化了我们的etl任务。
开箱即用的是Python2.x,但是只需要几分钟的工作,您就可以将它们升级到Python3(如果您的数据是utf-8,则很有用)

00jrzges

00jrzges2#

想办法了。我创建了一个shell文件,其中包含如下命令:

echo 'list' | hbase shell -n

用python运行这个。

相关问题