shell脚本中的presto cli命令需要什么权限才能执行

kmynzznz  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(423)

我有一个调用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>

我做错什么了?
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题