如何在oozie协调器中为shell变量中的返回结果编写配置单元脚本?

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

然后我在oozie中协调script.sh变量s中没有任何内容。这是shell脚本

S=$(hive -S -hiveconf MY_VAR1=$DB -hiveconf MY_VAR2=$avgpay -hiveconf MY_VAR3=$Date_LastDay -hiveconf MY_VAR4=$Date_LastNmonth -f bpxp.hql)

echo $S "S"

S1=( $( for k in $S ; do echo $k ; done ) )
    cntn=${#S1[@]}
    for (( p=0 ; p<$cntn; p=p+5 ))
 do
     `mysql -h$mysqlhost -u$mysqluser -p$mysqlpass $mysqldb -e "INSERT INTO weekstat (timeshift, partnerid, avg_value, processdate, weekday) VALUES ('${S1[p]}', '${S1[p+1]}', '${S1[p+2]}', '${S1[p+3]}', '${S1[p+4]}');"`
done

mysql命令与另一个变量bpxp.hql配合使用很好

...

    hive -e "select * from ${hiveconf:MY_VAR1}.weekstat;"

然后我从shell运行脚本,它工作正常。我尝试在没有这行的情况下使用bpxp.hql hive -e "select * from ${hiveconf:MY_VAR1}.weekstat;" 把它写在贝壳里= hive -e "select * from $DB.weekstat;" 但一切都没变。我的错在哪里?

os8fio9y

os8fio9y1#

无论你做什么,都是一种有效的方法,但要做以下的小改动:

S=$(hive -S -hiveconf MY_VAR1=$DB -hiveconf MY_VAR2=$avgpay -hiveconf MY_VAR3=$Date_LastDay -hiveconf MY_VAR4=$Date_LastNmonth -f bpxp.hql)

在bpxp.hql中保留查询

select * from $DB.weekstat;

您不需要在hql脚本中提到hive-e,上面的命令将自动执行并提供输出,并存储到s中。
如果我错了,请让我改正。

相关问题