运行bash脚本,该脚本通过Azkaban运行Hive命令

时间:2020-09-04 11:38:57

标签: shell hive azkaban

我有一个Azure HD Insights群集,我正在使用beeline客户端从可移除的Unix服务器进行连接。我确实有该连接的JDBC连接详细信息,并且可以使用以下命令执行Hive查询:

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p '<password>' -e "select 'abc';"

我也有在同一台Unix机器上运行的Azkaban Exec服务器和Azkaban Web服务器。 现在,我有一个Azkaban作业,该作业基本上使用以下配置运行shell脚本:

# test2.job

type=command
command =sh ./echo_ys.sh

echo_ys.sh与上面的beeline命令基本相同。

如果我从unix运行以下sh脚本 ./echo_ys.sh 它能够成功运行Hive命令。 但是我尝试对Azkaban做同样的事情,它说不能 ./echo_ys.sh: line 8: beeline: command not found

所以我更新了我的sh文件,以提供beeline的完整路径,这使我的命令看起来像

/opt/apache-hive-1.2.1-bin/bin/beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p '<password>' -e "select 'abc';"

现在出现错误:找不到hadoop安装:必须设置$ HADOOP_HOME或$ HADOOP_PREFIX或hadoop必须在路径中

我尝试在作业中创建一个具有以下参数的.properties文件:

env.HADOOP_HOME="/opt/hadoop-2.7.3"
HADOOP_HOME=/opt/hadoop-2.7.3

还尝试设置流参数hadoop.home = /opt/hadoop-2.7.3 但无济于事。

感谢您的帮助。

0 个答案:

没有答案