全局变量HADOOP\u USER\u NAME oozie?
有没有办法在oozie工作流中将HADOOP_用户名声明为全局变量?事实上,我正在为我的项目创建几个shell操作,但是为每个shell操作声明一个HADOOP_用户名是没有效率的,这就是为什么我想知道在这个场景中是否可以发生一个全局变量,如果是这样,我如何处理它 非常感谢你的帮助 这是我正在使用的代码全局变量HADOOP\u USER\u NAME oozie?,hadoop,oozie,oozie-coordinator,sqoop,Hadoop,Oozie,Oozie Coordinator,Sqoop,有没有办法在oozie工作流中将HADOOP_用户名声明为全局变量?事实上,我正在为我的项目创建几个shell操作,但是为每个shell操作声明一个HADOOP_用户名是没有效率的,这就是为什么我想知道在这个场景中是否可以发生一个全局变量,如果是这样,我如何处理它 非常感谢你的帮助 这是我正在使用的代码 <workflow-app name="My_Workflow" xmlns="uri:oozie:workflow:0.5"> <global> &
<workflow-app name="My_Workflow" xmlns="uri:oozie:workflow:0.5">
<global>
<configuration>
<property>
<name>HADOOP_USER_NAME</name>
<value>*****</value>
</property>
</configuration>
</global>
<start to="shell-a0a5"/>
<kill name="Kill">
<message>Error [${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="shell-a0a5">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>script1.sh</exec>
<file>script1.sh#script1.sh</file>
</shell>
<ok to="End"/>
<error to="Kill"/>
</action>
<end name="End"/>
HADOOP\u用户名
*****
错误[${wf:errorMessage(wf:lastErrorNode())}]
${jobTracker}
${nameNode}
脚本1.sh
脚本1.sh#脚本1.sh
出于某种原因,我没有从HADOOP_USER_NAME中获取值。也许我做得不对,我必须将它写在shell文件中,作为export HADOOP_USER_NAME=*** 您可以在工作流顶部添加全局标记,该标记充当该workflow.xml中操作的全局配置
<workflow-app xmlns="uri:oozie:workflow:0.4" name="wf-name">
<global>
<job-tracker>${job-tracker}</job-tracker>
<name-node>${namd-node}</name-node>
<job-xml>job1.xml</job-xml>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
<name>HADOOP_USER_NAME</name>
<value>${username}</value>
</property>
</configuration>
${job tracker}
${namd node}
job1.xml
mapred.job.queue.name
${queueName}
HADOOP\u用户名
${username}
您可以将
传递给运行Java实用程序的任何类型的Oozie操作,但不能传递给shell操作
在您的特定情况下,您可以在每个shell操作中本地声明一个
,并且可以全局定义该变量的实际值
- 在工作流的
部分 - 或在提交时在配置文件中
Hadoop用户
双向路由
…
>
${jobTracker}
${nameNode}
脚本1.sh
HADOOP_USER=NAME=${hadoopUser}
脚本1.sh#脚本1.sh