【问题标题】:Capture Impala Job Status in Logs在日志中捕获 Impala 作业状态
【发布时间】:2018-02-07 20:54:08
【问题描述】:

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

impala-shell -i server -f query.sql

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

【问题讨论】:

    标签: logging cloudera impala


    【解决方案1】:

    您可以使用 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 在命令行中运行作业时不会生成堆栈。所以文件中不会有任何日志。你发现了 Unix $? 的错误?但它只显示错误代码。
    • @roh Impala shell 产生(不带 --quiet 选项)大量输出到标准输出,其中将包含一些线索,如 SemanticException、AnalysisException、超出内存限制等。您可以 grep 任何/所有的输出其中。
    【解决方案2】:

    impala命令失败时,可以通过cloudera manager查看失败的原因。转至:Cloudera Manager --> Impala (service) --> Queries。从那里您可以选择查询并从右上角的菜单中选择详细信息。

    【讨论】:

      猜你喜欢
      • 2021-12-10
      • 2012-05-01
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多