Hadoop 클러스터의 JobHistory Server 상세 정보

Hadoop은 역사 서버를 가지고 있습니다. 역사 서버를 통해 이미 실행된 Mapreduce 작업 기록을 볼 수 있습니다. 예를 들어 맵을 얼마나 사용했는지, Reduce를 얼마나 사용했는지, 작업 제출 시간, 작업 시작 시간, 작업 완료 시간 등 정보를 볼 수 있습니다.기본적으로 Hadoop 히스토리 서버는 시작되지 않습니다. 아래 명령을 통해 Hadoop 히스토리 서버를 시작할 수 있습니다.
 ?
# mr-jobhistory-daemon.sh start historyserver

이렇게 하면 우리는 해당 기계의 19888 포트에서 역사 서버의 WEB UI 인터페이스를 열 수 있다.이미 실행된 작업 상황을 볼 수 있습니다.히스토리 서버는 다음과 같은 매개 변수를 통해 한 시스템에서 개별적으로 시작할 수 있습니다.

mapreduce.jobhistory.address
bigdata01:10020


mapreduce.jobhistory.webapp.address
bigdata01:19888


주:bigdata01은 제 집단명입니다. 위의 매개 변수는mapred-site입니다.xml 파일에서 설정,mapreduce.jobhistory.address와mapreduce.jobhistory.webapp.address의 기본값은 각각 0.0.0.0.0:10020과 0.0.0.0.0:19888입니다. 여러분은 자신의 상황에 따라 상응하는 설정을 할 수 있습니다. 매개 변수의 형식은host:port입니다.상술한 매개 변수를 설정한 후에 Hadoop jobhistory를 다시 시작하면 mapreduce에서 할 수 있습니다.jobhistory.webapp.address 매개 변수가 설정된 호스트에서 Hadoop 작업 상황을 볼 수 있습니다.많은 사람들이 이 역사 데이터들이 어디에 저장되어 있는지 물어볼 것이다.HDFS에 저장됩니다. HDFS의 어떤 디렉터리에 역사 작업 기록을 저장할지 아래 설정을 통해 설정할 수 있습니다.

mapreduce.jobhistory.done-dir
${yarn.app.mapreduce.am.staging-dir}/history/done


mapreduce.jobhistory.intermediate-done-dir
${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate


yarn.app.mapreduce.am.staging-dir
/tmp/hadoop-yarn/staging


위의 설정은 모두 기본값입니다. mapred-site에서 사용할 수 있습니다.xml 파일에서 수정합니다.그중,mapreduce.jobhistory.done-dir 매개 변수는 실행된 Hadoop 작업 기록을 어떤 디렉터리에 저장하는지 의미합니다.mapreduce.jobhistory.intermediate-done-dir는 실행 중인 Hadoop 작업 기록을 의미합니다.우리는 mapreduce에 도착할 수 있다.jobhistory.done-dir 매개 변수가 설정된 디렉터리에 무엇이 저장되어 있는지 확인하십시오.
[wyp@master /home/wyp/hadoop]# bin/hadoop fs -ls /jobs/done/
Found 2 items
drwxrwx---   - wyp supergroup          0 2013-12-03 23:36 /jobs/done/2013
drwxrwx---   - wyp supergroup          0 2014-02-01 00:02 /jobs/done/2014
 
[wyp@master /home/wyp/hadoop]# bin/hadoop fs -ls /jobs/done/2014/02/16
Found 27 items
drwxrwx--- - wyp supergroup 0 2014-02-16 02:02 /jobs/done/2014/02/16/001216
drwxrwx--- - wyp supergroup 0 2014-02-16 02:44 /jobs/done/2014/02/16/001217
drwxrwx--- - wyp supergroup 0 2014-02-16 03:38 /jobs/done/2014/02/16/001218
drwxrwx--- - wyp supergroup 0 2014-02-16 04:20 /jobs/done/2014/02/16/001219
drwxrwx--- - wyp supergroup 0 2014-02-16 05:14 /jobs/done/2014/02/16/001220
 
[wyp@master hadoop]# bin/hadoop fs -ls /jobs/done/2014/02/16/001216
Found 1318 items
-rwxrwx---   3 wyp    supergroup   45541335 2014-02-16 00:11 /jobs/done/2014
/02/16/001216/job_1388830974669_1216161-1392478837250-wyp-insert+overwrite
+table+qt_city_query_ana...e%28Stage-1392480689141-5894-33-SUCCEEDED-wyp.jhist
-rwxrwx---   3 wyp    supergroup     193572 2014-02-16 00:11 /jobs/done
/2014/02/16/001216/job_1388830974669_1216161_conf.xml
-rwxrwx---   3 wyp    supergroup   45594759 2014-02-16 00:11 /jobs/done/2014
/02/16/001216/job_1388830974669_1216162-1392478837250-wyp-insert+overwrite
+table+qt_city_query_ana...e%28Stage-1392480694818-5894-33-SUCCEEDED-wyp.jhist
-rwxrwx---   3 wyp    supergroup     193572 2014-02-16 00:11 /jobs/done
/2014/02/16/001216/job_1388830974669_1216162_conf.xml

위의 결과를 통해 우리는 몇 가지를 얻을 수 있다. (1) 역사 작업 기록은 HDFS 디렉터리에 저장된다.(2) 역사 작업 기록이 매우 많을 수 있기 때문에 역사 작업 기록은 연/월/일의 형식에 따라 상응하는 디렉터리에 저장하여 관리와 찾기에 편리하다.(3) 각 Hadoop 작업 기록에 대한 정보는 두 개의 파일로 저장되며 접두사 이름은 각각 *입니다.jhist,.xml..jhist 파일에는 다음과 같은 구체적인 Hadoop 작업에 대한 자세한 정보가 저장되어 있습니다.
{
   "type": "JOB_INITED",
   "event": {
      "org.apache.hadoop.mapreduce.jobhistory.JobInited": {
         "jobid": "job_1388830974669_1215999",
         "launchTime": 1392477383583,
         "totalMaps": 1,
         "totalReduces": 1,
         "jobStatus": "INITED",
         "uberized": false
      }
   }
}

이것은 Hadoop JOB의 초기화 정보입니다. 관찰을 통해 알 수 있습니다. *.jhist 파일에는 모두 Json 형식의 데이터가 있습니다.type에 따라 이 Json의 의미를 구분하고 Hadoop에는 다음과 같은 몇 가지 type이 포함되어 있습니다.
"JOB_SUBMITTED",
"JOB_INITED",
"JOB_FINISHED",
"JOB_PRIORITY_CHANGED",
"JOB_STATUS_CHANGED",
"JOB_FAILED",
"JOB_KILLED",
"JOB_ERROR",
"JOB_INFO_CHANGED",
"TASK_STARTED",
"TASK_FINISHED",
"TASK_FAILED",
"TASK_UPDATED",
"NORMALIZED_RESOURCE",
"MAP_ATTEMPT_STARTED",
"MAP_ATTEMPT_FINISHED",
"MAP_ATTEMPT_FAILED",
"MAP_ATTEMPT_KILLED",
"REDUCE_ATTEMPT_STARTED",
"REDUCE_ATTEMPT_FINISHED",
"REDUCE_ATTEMPT_FAILED",
"REDUCE_ATTEMPT_KILLED",
"SETUP_ATTEMPT_STARTED",
"SETUP_ATTEMPT_FINISHED",
"SETUP_ATTEMPT_FAILED",
"SETUP_ATTEMPT_KILLED",
"CLEANUP_ATTEMPT_STARTED",
"CLEANUP_ATTEMPT_FINISHED",
"CLEANUP_ATTEMPT_FAILED",
"CLEANUP_ATTEMPT_KILLED",
"AM_STARTED"

그리고 *.xml 파일에 기록된 것은 해당 작업이 실행될 때의 완전한 매개 변수 설정입니다. 들어가서 보십시오.(4), 모든 작업의 역사 기록은 하나의 단독 파일에 저장된다.  mapreduce.jobhistory.미디어-done-dir 설정된 디렉터리에는 현재 실행 중인 Hadoop 작업의 기록과 관련된 정보가 저장되어 있습니다. 관심 있는 학생들은 들어가서 볼 수 있습니다. 여기는 소개하지 않겠습니다.Hadoop 히스토리 서버 WEB UI에 제공된 데이터가 마음에 들지 않으면 mapreduce를 통해 사용할 수 있습니다.jobhistory.done-dir가 설정한 디렉터리를 분석하여 우리가 관심 있는 정보를 얻는다. 예를 들어 어느 날 몇 개의 맵이 실행되었는지, 가장 긴 작업이 얼마나 걸렸는지, 모든 사용자가 실행한 Mapreduce 작업 수, 모두 얼마나 많은 Mapreduce 수가 실행되었는지 등 정보를 통계하면 Hadoop 집단을 감시하는 데 좋다. 우리는 그 정보에 따라 어떤 사용자에게 자원을 어떻게 분배하는지 확인할 수 있다.세심한 사람은 Hadoop 히스토리 서버의 WEB UI에 최대 20000개의 히스토리 작업 기록 정보를 표시할 수 있다.사실 우리는 아래의 매개 변수를 통해 설정을 하고 Hadoop jobhistory를 다시 시작하면 된다.

mapreduce.jobhistory.joblist.cache.size
20000

좋은 웹페이지 즐겨찾기