2016-12-27 1 views
0

Oozie 워크 플로에서 실행중인 쉘 스크립트에서 HDFS의 파일이나 디렉토리를 추가/삭제할 수 없습니다. 사용자 이름은 "scitest"이고 편집/추가/삭제하려는 hdfs 경로는 /user/scitest /입니다.디렉토리를 만들 때 쉘 작업이 발생하지 않습니다.

셸 스크립트에서/user/scitest/경로에서 test123456이라는 폴더를 삭제하려고합니다.

--------------- oozie 로그에서 오류 ------------------

429737-[email protected]] Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1] 
2016-12-27 05:04:25,553 INFO ActionEndXCommand:520 - SERVER[vscihadoopvm2.manhdev.com] USER[scitest] GROUP[-] TOKEN[] APP[shell.workflow] JOB[0000041-161208225429737-oozie-oozi-W] ACTION[[email protected]] ERROR is considered as FAILED for SLA 

--------- 쉘 스크립트 (sample.sh) 내용 ----------

#!/bin/bash 
echo "`date` hi" > output.log 
hadoop fs -mkdir test123456 

------- job.properties-- -------

nameNode=hdfs://vscihadoopvm1.manhdev.com:8020 
jobTracker=vscihadoopvm2.manhdev.com:8050 
master=yarn-cluster 
#user.name=yarn 
queueName=default 
examplesRoot=oozietest 
oozie.use.system.libpath=true 
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot} 
,

--- workflow.xml ---

<?xml version="1.0" encoding="UTF-8"?> 
<workflow-app xmlns="uri:oozie:workflow:0.5" name="shell.workflow"> 
<start to="shell-node"/> 
    <action name="shell-node"> 
    <shell xmlns="uri:oozie:shell-action:0.3"> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <configuration> 
     <property> 
      <name>mapred.job.queue.name</name> 
      <value>${queueName}</value> 
     </property> 
     </configuration> 
     <exec>sample.sh</exec> 
     <file>sample.sh#sample.sh</file> 
    </shell> 
    <ok to="end"/> 
    <error to="kill"/> 
    </action> 
    <kill name="kill"> 
    <message>Error in Shell.Please refer the Oozie Logs</message> 
    </kill> 
    <end name="end"/> 
</workflow-app> 
+0

오류 메시지가 나와 관련이없는 것 같습니다. 스크립트를 실행할 수 있습니다. 또한 workflow.xml의 쉘 동작의'file' 태그에 완전한 경로를 제공하십시오. 감사. – YoungHobbit

+0

@YoungHobbit, 답장을 보내 주셔서 감사합니다. – abhiroy82

+0

@YoungHobbit, 답변 해 주셔서 감사합니다. 쉘 스크립트의 전체 hdfs 경로를 추가하려했지만 도움이되지 않았습니다 .. /user/scitest/oozietest/sample.sh # sample.sh하지만 도움이되지 않았습니다 ... 동일한 오류가 발생했습니다 ... 권한 문제 일 수 있습니다 .. – abhiroy82

답변

0

@Abhiroy, 당신이 당신의 oozie 조치가 실제로 실행되는 사용자 확인 할 수 있다면 어쩌면 그것의 더 나은. 샘플 셸 스크립트에 따옴표없이 'id'를 입력하고 워크 플로를 실행할 수 있습니다. 그런 다음 oozie 작업 로그를 추적하여 oozie가 사용중인 샘플 스크립트의 컨테이너 실행자를 볼 수 있습니다. 그런 다음 권한 문제가 있으면 추적을 시작할 수 있습니다.

+0

정말 감사합니다. Deepak. 나는 이것을 줄 것이다. – abhiroy82

관련 문제