【问题标题】:Capturing the Error in Impala using a shell script使用 shell 脚本在 Impala 中捕获错误
【发布时间】:2017-02-28 19:31:11
【问题描述】:

我正在尝试使用 shell 脚本执行一些 impala 查询。如果 impala 查询失败,我想捕获错误消息并将其写入文本文件。

有没有办法捕获错误消息?不仅仅是可以使用“$?”访问的退出状态,还有 impala 给出的实际错误消息。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: bash shell impala


    【解决方案1】:

    演示

    $ cat>myfile.sql
    select 1 as col1;
    select abc;
    select 2 as col2;
    

    $ impala-shell -f myfile.sql 1>myfile.txt 2>myfile.err
    $ result=$?
    

    $ echo $result 
    1
    

    $ cat myfile.txt
    +------+
    | col1 |
    +------+
    | 1    |
    +------+
    

    $ cat myfile.err
    Starting Impala Shell without Kerberos authentication
    Connected to quickstart.cloudera:21000
    Server version: impalad version 2.5.0-cdh5.7.0 RELEASE (build ad3f5adabedf56fe6bd9eea39147c067cc552703)
    Query: select 1 as col1
    Fetched 1 row(s) in 0.05s
    Query: select abc
    ERROR: AnalysisException: Could not resolve column/field reference: 'abc'
    
    Could not execute command: select abc
    

    【讨论】:

    • 感谢您的回答。我实际上尝试过,但它对我不起作用。即使查询失败,该文件也始终为空。这是我的查询: result=$(impala-shell --quiet --delimited --ssl -i ${impala_host} -ku ${user_id}${impala_realm} -q "set request_pool = $ {request_pool};使用 $current_directory$ENV;使元数据 $tbl_name 无效;显示像 '$tbl_name' 这样的表;") 2>> /tmp/psk1/logsdb.txt
    • 查看编辑后的答案。 result=$(...) 2>> ... 不起作用,因为重定向不在 impala-shell 的范围内。
    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2019-03-21
    • 2021-05-16
    相关资源
    最近更新 更多