如何在oozie工作流程中获取当前DB::table->pluck
的{{1}}?
例如:
name
答案 0 :(得分:0)
目前Oozie无法获取当前的操作节点名称。但是,解决方法是:
答案 1 :(得分:0)
当Oozie向YARN提交Shell Action时,它会发送一个XML文件,其中包含有关当前Workflow和Action的一些信息,并设置一个env。变量指向该文件。只需使用 sed 和 voila 解析XML。
if [[ "$CONTAINER_ID" != "" && "$OOZIE_ACTION_CONF_XML" != "" ]]
then
RawDump=$(/bin/sed -n '/<name>mapreduce.job.name<\/name>/ { N ; s/^.*<value>oozie:action:/:/ ; s/<\/value>.*$/:/ ; p}' "$OOZIE_ACTION_CONF_XML")
MyOozieWorkflow=$(/bin/echo "$RawDump" | /bin/sed -n '/:W=[^:]*:/ { s/^.*W=// ; s/:.*$// ; p }')
MyOozieJobId=$( /bin/echo "$RawDump" | /bin/sed -n '/:ID=[^:]*:/ { s/^.*ID=// ; s/:.*$// ; p }')
MyOozieAction=$( /bin/echo "$RawDump" | /bin/sed -n '/:A=[^:]*:/ { s/^.*A=// ; s/:.*$// ; p }')
else
MyOozieWorkflow='None'
MyOozieJobId='None'
MyOozieAction='None'
fi