2013-03-04 3 views
2

이 jobclient.monitorandprintjob() 메소드를 사용하여 맵 축소 작업의 출력을 콘솔에 인쇄했습니다. 다음과맵 축소 작업의 출력을 텍스트 파일에 로깅

job_client.monitorAndPrintJob(job_conf, job_client.getJob(j.getAssignedJobID())) 

출력있는 (콘솔에 인쇄) :

13/03/04 07:20:00 INFO mapred.JobClient: Running job: job_201302211725_10139<br> 
13/03/04 07:20:01 INFO mapred.JobClient: map 0% reduce 0%<br> 
13/03/04 07:20:08 INFO mapred.JobClient: map 100% reduce 0%<br> 
13/03/04 07:20:13 INFO mapred.JobClient: map 100% reduce 100%<br> 
13/03/04 07:20:13 INFO mapred.JobClient: Job complete: job_201302211725_10139<br> 
13/03/04 07:20:13 INFO mapred.JobClient: Counters: 26<br> 
13/03/04 07:20:13 INFO mapred.JobClient: Job Counters<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Launched reduce tasks=1<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Aggregate execution time of mappers(ms)=5539<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Total time spent by all reduces waiting after reserving slots (ms)=0<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Total time spent by all maps waiting after reserving slots (ms)=0<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Launched map tasks=2<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Data-local map tasks=2<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Aggregate execution time of reducers(ms)=4337<br> 
13/03/04 07:20:13 INFO mapred.JobClient: FileSystemCounters<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  MAPRFS_BYTES_READ=583<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  MAPRFS_BYTES_WRITTEN=394<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  FILE_BYTES_WRITTEN=140219<br> 
13/03/04 07:20:13 INFO mapred.JobClient: Map-Reduce Framework<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Map input records=6<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Reduce shuffle bytes=136<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Spilled Records=22<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Map output bytes=116<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  CPU_MILLISECONDS=1320<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Map input bytes=64<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Combine input records=13<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  SPLIT_RAW_BYTES=180<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Reduce input records=11<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Reduce input groups=11<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Combine output records=11<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  PHYSICAL_MEMORY_BYTES=734961664<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Reduce output records=11<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  VIRTUAL_MEMORY_BYTES=9751805952<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  Map output records=13<br> 
13/03/04 07:20:13 INFO mapred.JobClient:  GC time elapsed (ms)=0<br> 

내가/위의 출력을 원하는 기록 할 텍스트 파일로 인쇄 할 내 사용은 다음과 같이이다 ,보다는 오히려 콘솔. 어떤 제안?

답변

2

HADOOP_HOME/conf에 log4j.properties이라는 파일이 하나있을 수 있습니다. 로그인 할 위치와 방법을 구성 할 수 있다고 생각합니다.

, 당신이 롤링 파일 어 펜더를 사용하여야한다 정확하게하려면, 그래서 당신하여야한다 않은 코멘트 (단지 # 제거) log4j.properties 파일에서 다음 줄 :

# Rolling File Appender 
# 

#log4j.appender.RFA=org.apache.log4j.RollingFileAppender 
#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file} 

# Logfile size and and 30-day backups 
#log4j.appender.RFA.MaxFileSize=1MB 
#log4j.appender.RFA.MaxBackupIndex=30 

#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout 
#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n 
#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 

하고 다른 매개 변수를 사용자 정의 너의 취향.

log4j 구성에 대한 자세한 내용은 here을 읽으십시오.

+0

답장 @amar에 감사드립니다. 그러나, 나는 지금은 hadoop conf 파일에 대한 액세스 권한이 없습니다. Log4J API를 사용할 수 있습니까? 아니면 프로그래밍 방식으로 속성 파일을 수정하는 대신 텍스트 파일로 로그를 전송할 수 있습니까? – Eashwar

+0

어디에서 hadoop을 실행합니까? – Amar

+0

자신 만의 속성 파일을 가지고있어 hadoop을 실행하는 동안 명령 행에서이를 가리킬 수도 있습니다 :'-Dlog4j.configuration = my-log4j.properties' – Amar

관련 문제