Какое разрешение требует команда Presto CLI внутри сценария оболочки для выполнения - PullRequest
0 голосов
/ 18 октября 2019

У меня есть рабочий процесс oozie, который вызывает скрипт оболочки. Сценарий оболочки вызывает запрос preto cli. Если я выполняю сценарий оболочки из терминала замазки, тогда все работает как положено

Но когда я запускаю рабочий процесс, возникает ошибка. Я знаю, что сам сценарий оболочки вызывается успешно, так как я вижу свою инструкцию ECHO в файлах журнала ниже

Этот сценарий хранится в файловой системе Hadoop

сценарий оболочки:

#!/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 вызывается, возникает ошибка «Отказано в доступе»

В графическом интерфейсе Oozie можно увидеть действие, выполняемое под моим пользователем 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>

Что я делаю неправильно?

Спасибо

...