我是Oozie的新手,我已經閱讀了一些Oozie shell操作示例,但是這讓我對某些事情感到困惑。Oozie shell操作:exec和文件標籤
有些例子我看過沒有<file>
標籤。
一些示例,像Cloudera的here,重複文件標籤殼腳本:
<shell xmlns="uri:oozie:shell-action:0.2">
<exec>check-hour.sh</exec>
<argument>${earthquakeMinThreshold}</argument>
<file>check-hour.sh</file>
</shell>
儘管在Oozie's website,寫殼腳本(從job.properties基準${EXEC}
,它指向script.sh文件)兩次,用#分隔。
<shell xmlns="uri:oozie:shell-action:0.1">
...
<exec>${EXEC}</exec>
<argument>A</argument>
<argument>B</argument>
<file>${EXEC}#${EXEC}</file>
</shell>
還有一些例子我見過所在的路徑(HDFS或地方?)是<file>
標籤內的script.sh#script.sh
之前預先考慮。
<shell xmlns="uri:oozie:shell-action:0.1">
...
<exec>script.sh</exec>
<argument>A</argument>
<argument>B</argument>
<file>/path/script.sh#script.sh</file>
</shell>
據我所知,任何外殼腳本文件可以包括在工作流路徑HDFS(其中workflow.xml駐留相同的路徑)。
有人可以解釋這些示例中的差異以及如何使用<exec>
,<file>
,script.sh#script.sh
和/path/script.sh#script.sh
?
順便說一句,也許你想知道''元素的##語法的值是多少。在上面的例子中,它沒有任何價值。但考慮' /apps/bling/bling-hardcore-1.2.3.4-6-unplugged.jar#bling.jar '或' /apps/stuff/spark-1.6.0-withhive-1.2-dependencies。 zip#spark '以便您的Java或Shell操作可以期望預定義的名稱來構建CLASSPATH ... –