我有一个环境变量保存在我的.bash_profile
. 我正在尝试使用sys.env()
Scala 中的方法通过 Spark 程序访问它。当我没有 Oozie Scheduling 时,我可以正确访问 Spark 中的环境变量。但是,当我尝试使用 Oozie 安排我的程序时,程序会抛出一个错误,它无法读取 env 变量。
这是我的工作流.xml:
<workflow-app xmlns='uri:oozie:workflow:0.5' name='Security-User-Management'>
<start to='spark-node' />
<action name='spark-node'>
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
<delete path="hdfs://<some hdfs url>/user/clsadmin/cmdw-security/cmdw-security-logs"/>
<mkdir path="hdfs://<some hdfs url>/user/clsadmin/cmdw-security/cmdw-security-logs"/>
</prepare>
<configuration>
<property>
<name>CMDW_CLOUD_USERNAME</name>
<value>abcd</value>
</property>
</configuration>
<master>${master}</master>
<name>CMDW-Security-User-Management</name>
<class>custom.cmdwldap.executable.Test</class>
<jar>hdfs://some hdfs url/user/clsadmin/security/Security.jar</jar>
<arg>CMDW_CLOUD_USERNAME=abcd</arg>
</spark>
<ok to="end" />
<error to="fail" />
</action>
<kill name="fail">
<message>Workflow failed, error message:
${wf:errorMessage(wf:lastErrorNode())}
</message>
</kill>
<end name="end" />
</workflow-app>
如何configuration
在我的 Scala 代码中阅读 ..