从远程计算机执行长时间运行的配置单元查询

brgchamk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(310)

我必须使用python脚本从本地服务器执行长时间运行(约10小时)的配置单元查询。我的目标配置单元服务器位于aws群集中。
我试着用pyhs2执行它,execute(' <command> ')

paramiko,执行命令('hive-e' <command> "')
在这两种情况下,我的查询都将在配置单元服务器中运行并将成功完成。但问题是,即使在成功完成查询之后,我的父python脚本仍将继续等待返回值,并将在无限长的时间内保持可中断睡眠(sl)状态!
不管怎样,我是否可以使用pyhs2或paramiko使我的脚本正常工作?在python中还有其他更好的选项吗?

gcmastyq

gcmastyq1#

正如我之前提到的,在基于性能的环境中,我也面临类似的问题。我的用例是使用pyhs2模块来运行使用hivetez执行引擎的查询。tez生成大量的日志(基本上以秒为单位)。在stdout变量中捕获日志,并在查询成功完成后提供给输出。克服这个问题的方法是在生成输出时将其流式化,如下所示:

for line in iter(lambda: stdout.readline(2048), ""):
    print line

但为此,您必须使用paramiko或fabric使用本机连接到集群,然后通过cli或beeline发出hive命令。

相关问题