返回配置单元脚本的状态

时间:2017-01-28 04:23:16

标签: bash shell hive hiveql

关于捕获hive脚本的返回状态/退出状态,我有两个问题。

  1. 在unix脚本中捕获返回状态
  2. try2.hq​​l

    select from_unixtime(unix_timestamp(),'YYYY-MM-DD')
    

    这在shell脚本try1.sh

    中调用
    echo "Start of script"
    hive -f try2.hql
    echo "End of script"
    

    现在,我需要捕获try2.hq​​l的返回状态。我怎么能这样做?

    1. 多个查询可用时的控制流程
    2. 脚本try3.hql中有几个配置单元查询

      select stockname, stock_date from mystocks_stg;
      
      select concat('Top10_Stocks_High_OP_',sdate,'_',srnk) as rowkey, sname, sdate, sprice, srnk from (
      select stockname as sname, stock_date as sdate, stock_price_open as sprice,rank() over(order by stock_price_open desc) as srnk
      from mystocks
      where from_unixtime(unix_timestamp(stock_date,'yyyy-mm-dd'),'yyyymmdd') = '${hiveconf:batch_date}') tab
      where tab.srnk <= 10;
      

      在脚本try4.sh中调用try3.hql传递相关参数。

      我的问题:在try3.hql中,如果第一个查询中有任何错误,我必须返回shell脚本并中止程序,而不执行第二个脚本。

      请建议。

3 个答案:

答案 0 :(得分:0)

对于问题的第1部分,您可以更改脚本以退出配置单元的状态:

j$('input[id$="StartDate"]')

答案 1 :(得分:0)

我有第2部分的解决方案。

你知道&#34; hive&#34;不推荐使用CLI支持&#34; beeline&#34;根据{{​​3}}?

  

HiveServer2(在Hive 0.11中引入)有自己的名为Beeline的CLI,   这是一个基于SQLLine的JDBC客户端。由于新的发展   专注于HiveServer2的Hive CLI将很快被弃用   直线(HIVE-10511)。

直线下,默认情况下,只要出现错误,您的脚本就会停止。这是由&#34; force&#34;参数。

--force=[true/false]            continue running script even after errors

顺便说一下,documentation为第1部分提供的解决方案仍然适用于直线。

答案 2 :(得分:0)

echo“脚本开始” hive -f try2.hq​​l hive_status = $? echo“脚本结束” echo $ hive_status&gt;&gt; $ HOME / exit_status.log

在主目录中,您将找到创建的exit_status.log文件,您将在该文件中获得脚本的退出状态。