【发布时间】:2013-02-20 13:09:01
【问题描述】:
基于条件为真,我正在 shell 脚本中执行 hive -e。它工作正常。当我将此脚本放入 Oozie 中的 Shell 操作并运行时,我得到一个 scriptName.sh:第 42 行:hive:command not发现异常。
我尝试在 shell 操作中传递 PATH=/usr/lib/hive,但我想我在那里犯了一些错误,因为我得到了相同的错误 scriptName.sh : 第 42 行: hive:command not found
已编辑:
我在 shell 脚本中使用了which hive。它的输出不一致。我得到了两种输出变化:
1. /usr/bin/hive 以及 Delegation token can be issued only with kerberos or web authentication Java IOException。”
2.which : hive not in {.:/sbin:/usr/bin:/usr/sbin:...}
【问题讨论】:
-
你在正确的轨道上。您缺少环境变量。 shell 将使用 set 命令向您显示变量的完整列表。我相信 oozie 在单独的上下文中运行,因此它可能与您的 shell 命令行有不同的设置。
-
一个问题是 Oozie 的环境变量 PATH 被我在
中的条目取代...我复制了 Oozie PATH 变量值并将 :/usr/lib/hive 附加到它..即使那样我也会遇到同样的错误.. -
问题不只是一个变量。在命令行键入命令集。 set 显示所有变量。了解您需要哪些设置才能为 oozie 工作。
-
好的..脚本是否需要执行权限?因为即使我在 Oozie 中执行之前授予它执行权限并将其放入 HDFS 中,该权限也会丢失。我也无法对其执行 chmod +x ..