gpt4 book ai didi

hadoop - 全局变量 HADOOP_USER_NAME oozie?

转载 作者:可可西里 更新时间:2023-11-01 15:11:04 25 4
gpt4 key购买 nike

有什么方法可以在 oozie 工作流中将 HADOOP_USER_NAME 声明为全局变量?实际上,我正在为我的项目创建多个 shell 操作,但为每个 shell 操作声明一个 HADOOP_USER_NAME 效率不高,这就是为什么我想知道在这种情况下是否可以使用全局变量,如果可以,我该如何继续它。 ..

非常感谢您的帮助。

这是我正在使用的代码

<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_USER_NAME 获取值,也许我做错了,我不得不将它写到 shell 文件中,如 export HADOOP_USER_NAME=****;

最佳答案

你可以传递一个 <property>运行 Java 实用程序的任何类型的 Oozie 操作——但不包括 shell 操作。

在您的特定情况下,您可以声明 <env-var>每个 shell 操作中本地化,您可以全局定义该变量的实际值...

  • <parameter>工作流程部分
  • 或在提交时的配置文件中


    <参数>
    <属性>
    <名称>hadoop用户
    比卢特


    ...

    >
    <工作追踪器>${jobTracker}
    <名称节点>${nameNode}
    script1.sh
    HADOOP_USER=NAME=${hadoopUser}
    <文件>script1.sh#script1.sh




    ...

关于hadoop - 全局变量 HADOOP_USER_NAME oozie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com