我有一个调用shell脚本的oozie工作流。shell脚本调用presto cli查询。如果我从putty终端执行shell脚本,那么一切都按预期工作
但是当我运行工作流时,出现了一个错误。我知道shell脚本本身正在被成功调用,因为我可以在下面的日志文件中看到我的echo语句
这个脚本存储在hadoop文件系统中
shell脚本:
# !/bin/bash
echo Execute Presto Command
/home/hdfs/presto-cli --server 1.1.1.1:8080 --catalog hive --schema test --execute 'SELECT * from test limit 10'
但是,当调用presto cli命令时,会引发“permission denied”错误
我可以在oozie gui中看到作为hdfs用户运行的操作,所以我不确定它指的是什么权限?
我在某个地方读到,您需要告诉工作流以启动工作流的用户的身份运行,而不是以yarn用户的身份运行。我将env var标记添加到我的工作流操作中(见下文),但这也没有帮助
我的工作流操作如下:
<action name="Shell-Action">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>_myshell.sh</exec>
<env-var>HADOOP_USER_NAME=${wf:user()}</env-var>
<file>/user/hdfs/scripts/myshell.sh</file>
</shell>
<ok to="end"/>
<error to="fail"/>
</action>
我做错什么了?
谢谢
暂无答案!
目前还没有任何答案,快来回答吧!