gpt4 book ai didi

shell - 需要使用 Hive 将变量从 Shell Action 传递给 Oozie Shell

转载 作者:行者123 更新时间:2023-12-04 21:12:48 27 4
gpt4 key购买 nike

全部,

希望将变量从 shell 操作传递给 oozie shell。我在我的脚本中运行这样的命令:

#!/bin/sh
evalDate="hive -e 'set hive.execution.engine=mr; select max(cast(create_date as int)) from db.table;'"
evalPartition=$(eval $evalBaais)
echo "evaldate=$evalPartition"

技巧在于它是 shell 中的一个 hive 命令。

然后我运行它以将其放入 oozie:
${wf:actionData('getPartitions')['evaldate']}

但它每次都拉一个空白!我可以在我的 shell 中正常运行这些命令,它似乎可以工作,但 oozie 不行。同样,如果我在集群的其他机器上运行这些命令,它们也能正常运行。有任何想法吗?

最佳答案

问题是关于我的集群的配置。当我以 oozie 用户身份运行时,我遇到了/tmp/yarn 的写入权限问题。有了这个,我将命令更改为:

baais="export HADOOP_USER_NAME=functionalid; hive yarn -hiveconf hive.execution.engine=mr -e 'select max(cast(create_date as int)) from db.table;'"

hive 允许我像 yarn 一样运行的地方。

关于shell - 需要使用 Hive 将变量从 Shell Action 传递给 Oozie Shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com