[HADOOP] cron에 의해 호출 될 때 하둡 작업이 실패 함
HADOOPcron에 의해 호출 될 때 하둡 작업이 실패 함
hadoop 작업을 호출하기 위해 다음 쉘 스크립트를 작성했습니다.
#!/bin/bash
/opt/hadoop/bin/hadoop jar /path/to/job.jar com.do.something <param-1> ... <param-n> &
wait %1
STATUS=$?
if [ $STATUS -eq 0 ]
then
echo "SUCCESS" | mailx -s "Status: "$STATUS -r "mail@mysite.com" "mail@mysite.com"
exit $STATUS
else
echo "FAILED" | mailx -s "Status: "$STATUS -r "mail@mysite.com" "mail@mysite.com"
exit $STATUS
fi
위의 스크립트를 다음과 같이 수동으로 실행할 때 :
$ ./path/to/job.sh
하둡 작업이 성공적으로 실행되어 종료 상태 "0"을 반환합니다.
이제 매일 작업 실행을 자동화하기 위해 위의 스크립트를 다음과 같이 실행하도록 cron 작업을 구성했습니다.
0 22 * * * /path/to/job.sh
그러나 이제 작업이 Hadoop에 제출되지 않고 종료 상태 "1"이 표시됩니다.
몇 가지주의 할 사항 :
cron이 호출 할 때 왜 작업이 실행되지 않는지 알고 싶습니다.
해결법
-
==============================
1.
0 22 * * * /path/to/job.sh
당신이 "."을 잃어버린 것 같아요 당신의 명령에.
0 22 * * * ./path/to/job.sh
작동합니까?
-
==============================
2.cron에서 실행하는 환경은 일반 쉘과 다를 수 있습니다. 예를 들어 확인하십시오. JAVA_HOME, PATH 등
cron에서 실행하는 환경은 일반 쉘과 다를 수 있습니다. 예를 들어 확인하십시오. JAVA_HOME, PATH 등
-
==============================
3.비슷한 문제가 발생했습니다. JAVA_HOME, HADOOP_HOME 및 PATH와 같은 환경 변수를 설정하기 위해 $ HOME / .bashrc를 사용했습니다. 또한 job.sh를 수동으로 실행할 수도 있습니다. 그러나 job.sh가 cron에 의해 호출되면 job.sh 내의 hadoop 관련 명령을 올바르게 호출 할 수 없습니다.
비슷한 문제가 발생했습니다. JAVA_HOME, HADOOP_HOME 및 PATH와 같은 환경 변수를 설정하기 위해 $ HOME / .bashrc를 사용했습니다. 또한 job.sh를 수동으로 실행할 수도 있습니다. 그러나 job.sh가 cron에 의해 호출되면 job.sh 내의 hadoop 관련 명령을 올바르게 호출 할 수 없습니다.
내 문제의 원인은 cron이 $ HOME / .bashrc를 소스하지 않기 때문입니다. 따라서 내부 환경 변수는 cron에서 볼 수 없습니다. job.sh에서 이러한 모든 환경 변수를 설정 한 후 hadoop 관련 명령이 cron에 의해 올바르게 호출됩니다.
-
==============================
4./ etc / profile에서 JAVA_HOME 및 HADOOP_HOME을 설정 한 경우 더하다
/ etc / profile에서 JAVA_HOME 및 HADOOP_HOME을 설정 한 경우 더하다
당신의 직업에서 .sh. 도움이 될 것입니다.
-
==============================
5.job.sh에서 JAVA_HOME, HADOOP_HOME을 설정 한 후 :
job.sh에서 JAVA_HOME, HADOOP_HOME을 설정 한 후 :
당신의 직업에서 무엇을 참조하십시오
from https://stackoverflow.com/questions/3332917/hadoop-job-fails-when-invoked-by-cron by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Pig 사용자 정의 행 / 레코드 구분 기호를 사용하여 파일 저장 (0) | 2019.09.15 |
---|---|
[HADOOP] MapRe에서 조회를 위해 XML 파일을 읽도록 허용하는 방법 (0) | 2019.09.15 |
[HADOOP] Hadoop 3 : 삭제 코딩을 구성 / 활성화하는 방법은 무엇입니까? (0) | 2019.09.15 |
[HADOOP] Dataframe.toPandas는 항상 드라이버 노드 또는 작업자 노드에 있습니까? (0) | 2019.09.15 |
[HADOOP] hadoop-streaming.jar는 각 줄의 끝에 x'09 '를 추가합니다 (0) | 2019.09.15 |