Logging 在日志中捕获Impala作业状态

Logging 在日志中捕获Impala作业状态,logging,cloudera,impala,Logging,Cloudera,Impala,我有在CLI模式下触发Impala查询的shell脚本: impalashell-i服务器-f query.sql 如何将Impala作业的状态捕获到日志文件中,尤其是当它失败时?而且,如果失败,自动触发作业以再次运行它?您可以使用linuxtee命令将输出写入文件: impala-shell -i server -f query.sql | tee impala-output.log 对于impala shell的完成状态,linux特殊变量$?的非零值将指示错误 if [ "$?" >

我有在CLI模式下触发Impala查询的shell脚本:

impalashell-i服务器-f query.sql


如何将Impala作业的状态捕获到日志文件中,尤其是当它失败时?而且,如果失败,自动触发作业以再次运行它?

您可以使用linux
tee
命令将输出写入文件:

impala-shell -i server -f query.sql | tee impala-output.log
对于impala shell的完成状态,linux特殊变量
$?
的非零值将指示错误

if [ "$?" > 0 ]; then
    # do things to handle failure
fi

当impala命令失败时,您可以通过cloudera manager查看失败原因。转到:
cloudera manager-->impala(服务)-->Queries
。从那里您可以选择查询&从右上角的菜单中选择详细信息。

impala在命令行中运行作业时不会生成堆栈。因此,文件中不会有任何日志。是否使用Unix$捕获错误?但它只显示了错误代码。@roh Impala shell向stdout生成(不带--quiet选项)成吨的输出,其中将包含一些线索,如SemanticException、AnalysisException、超出内存限制等。您可以对这些输出进行grep。