[HADOOP] 현재 실행중인 hadoop 작업의 이름을 얻는 방법?
HADOOP현재 실행중인 hadoop 작업의 이름을 얻는 방법?
현재 실행중인 작업 이름 목록을 가져와야하지만 hadoop -job list는 jobID 목록을 제공합니다.
해결법
-
==============================
1.나는 이것을 여러 번 해봐야했기 때문에 스크립트에서 어딘가에 던져서 재사용 할 수있는 다음 명령 줄을 생각해 냈습니다. jobid 다음에 작업 이름을 출력합니다.
나는 이것을 여러 번 해봐야했기 때문에 스크립트에서 어딘가에 던져서 재사용 할 수있는 다음 명령 줄을 생각해 냈습니다. jobid 다음에 작업 이름을 출력합니다.
hadoop job -list | egrep '^job' | awk '{print $1}' | xargs -n 1 -I {} sh -c "hadoop job -status {} | egrep '^tracking' | awk '{print \$3}'" | xargs -n 1 -I{} sh -c "echo -n {} | sed 's/.*jobid=//'; echo -n ' ';curl -s -XGET {} | grep 'Job Name' | sed 's/.* //' | sed 's/<br>//'"
-
==============================
2.Hadoop YARN을 사용하는 경우 맵핑 된 작업 목록 (또는 사용되지 않는 버전 hadoop 작업 목록)을 사용하지 마십시오.
Hadoop YARN을 사용하는 경우 맵핑 된 작업 목록 (또는 사용되지 않는 버전 hadoop 작업 목록)을 사용하지 마십시오.
yarn application -appStates RUNNING -list
그것도 응용 프로그램 / 작업 이름을 출력합니다. mapreduce 응용 프로그램의 경우 Application-Id의 응용 프로그램 접두어를 작업으로 대체하여 해당 JobId를 가져올 수 있습니다.
-
==============================
3.AnthonyF의 스크립트를 수정하면 Yarn에 다음을 사용할 수 있습니다.
AnthonyF의 스크립트를 수정하면 Yarn에 다음을 사용할 수 있습니다.
mapred job -list 2> /dev/null | egrep '^\sjob' | awk '{print $1}' | xargs -n 1 -I {} sh -c "mapred job -status {} 2>/dev/null | egrep 'Job File' | awk '{print \$3}'" | xargs -n 1 -I{} sh -c "hadoop fs -cat {} 2>/dev/null | egrep 'mapreduce.job.name' | sed 's/.*<value>//' | sed 's/<\/value>.*//'"
-
==============================
4.$ HADOOP_HOME / bin / hadoop -job -status
를 수행하면 출력에 추적 URL이 생깁니다. 해당 URL로 이동하면 이름이있는 추적 페이지가 표시됩니다. $ HADOOP_HOME / bin / hadoop -job -status
를 수행하면 출력에 추적 URL이 생깁니다. 해당 URL로 이동하면 이름이있는 추적 페이지가 표시됩니다. Job Name: <job name here>
-status 명령은 추적 URL에서도 볼 수있는 파일을 제공합니다. 이 파일에는 작업 이름이있는 mapred.job.name이 있습니다.
명령 줄에서 작업 이름에 액세스하는 방법을 찾지 못했습니다. 거기에 없다고 말하면서는 안되지만 ... :)
추적 URL 및 XML 파일은 아마도 작업 이름을 가져 오는 데 가장 좋은 옵션 일 수 있습니다.
-
==============================
5.JobTracker UI에서이 정보를 찾을 수 있습니다.
JobTracker UI에서이 정보를 찾을 수 있습니다.
너는 볼 수있어
Jobid Priority User Name of the job State of the job whether it succeed or failed Start Time Finish Time Map % Complete Reduce % Complete etc
정보
-
==============================
6.최근 쿼리에 관심이있는 사람이라면 작업 이름을 얻을 수 있습니다 :-). 수정 된 피로 오즈 명령 -
최근 쿼리에 관심이있는 사람이라면 작업 이름을 얻을 수 있습니다 :-). 수정 된 피로 오즈 명령 -
맵핑 된 작업 -리스트 2> / dev / null | egrep '^ job'| awk '{print $ 1}'| xargs -n 1 -I {} sh -c "mapred job -status {} 2> / dev / null | egrep '작업 파일'"| awk '{print $ 3}'| xargs -n 1 -I {} sh -c "hadoop fs -cat {} 2> / dev / null"| egrep 'mapreduce.job.name'| awk -F "" '{print $ 2}'| awk -F "" '{print $ 1}'
-
==============================
7.나는 역사를 들여다 볼 필요가 있었기 때문에 mapred joblist를 mapred job list로 변경했다.
나는 역사를 들여다 볼 필요가 있었기 때문에 mapred joblist를 mapred job list로 변경했다.
curl 명령에 -L을 추가 했으므로 블록이있었습니다.
curl -s -L -XGET {}
이렇게하면 리디렉션 (예 : 작업이 폐기 된 경우 및 작업 내역)이 허용됩니다. 또한 History HTML에 JobName이라는 것을 발견 했으므로 grep을 변경했습니다.
grep 'Job.*Name'
플러스 물론 mapo로 변경하는 hadoop. 전체 명령은 다음과 같습니다.
mapred job -list all | egrep '^job' | awk '{print $1}' | xargs -n 1 -I {} sh -c "mapred job -status {} | egrep '^tracking' | awk '{print \$3}'" | xargs -n 1 -I{} sh -c "echo -n {} | sed 's/.*jobid=//'; echo -n ' ';curl -s -L -XGET {} | grep 'Job.*Name' | sed 's/.* //' | sed 's/<br>//'"
(나는 또한 최초의 grep을 바꿔서 특정 사용자 이름만을보고 있었다 .... YMMV)
-
==============================
8.터미널에 "jps"라고 입력하십시오.
터미널에 "jps"라고 입력하십시오.
from https://stackoverflow.com/questions/5892495/how-to-get-names-of-the-currently-running-hadoop-jobs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 직업 부름의 차이점 (0) | 2019.07.06 |
---|---|
[HADOOP] 인수를 Hadoop 매퍼로 전달 (0) | 2019.07.06 |
[HADOOP] 하이브 쿼리 내에서 입력 파일 이름을 열로 가져 오는 방법 (0) | 2019.07.06 |
[HADOOP] MapReduce의 파티셔닝은 정확히 어떻게 작동합니까? (0) | 2019.07.06 |
[HADOOP] HDFS 디렉토리의 파일 수 (0) | 2019.07.06 |