我在尝试执行shell脚本时遇到错误。如果我在这里做了任何错误,请告诉我。
我已将所有文件复制到Hdfs中。 Oozie文件夹包含脚本文件夹,我在该文件夹中有sample.sh。
Cannot run program "sample.sh" (in directory "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/cloudera/appcache/application_1468541187565_0011/container_1468541187565_0011_01_000002"): error=2, No such file or directory
请找到我的工作和工作流程文件。
<workflow-app name="WF_PRC_L2_LOAD" xmlns="uri:oozie:workflow:0.5">
<credentials>
<credential name="hive2" type="hive2">
<property>
<name>hive2.jdbc.url</name>
<value>${hive2_jdbc_url}</value>
</property>
</credential>
</credentials>
<start to="shell-001"/>
<kill name="Kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="shell-001">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>sample.sh</exec>
<file>${basepath}/scripts/sample.sh#sample.sh</file>
<capture-output />
</shell>
<ok to="End" />
<error to="Kill" />
</action>
<end name="End"/>
</workflow-app>
我的Job.properties文件如下:
oozie.use.system.libpath=True
src_tmvw_schema=AMLMKTE_TM
l1_schema=amlmkte_l1
tm_stg_schema=L4_AMLMKT_STGE
basepath=/user/sp57529/oozie
queueName=default
oozie.wf.application.path=/user/sp57529/oozie/application/app_amlmkt_dq/wf_prc_l1_dq/
env=home
hive2_jdbc_url=jdbc:hive2://localhost:10000/default
nameNode=hdfs://localhost:8020
jobTracker=localhost:8032
答案 0 :(得分:0)
1)您是否尝试将sample.sh放在&#34; oozie.wf.application.path&#34;路径和将文件属性更改为
<file>sample.sh</file>
2)我遇到了相同的#34;没有这样的文件或目录&#34;错误,当shell脚本文件从Windows复制到linux时损坏。验证文件