복붙노트

[HADOOP] 맵 감소 작업의 출력을 텍스트 파일로 로깅

HADOOP

맵 감소 작업의 출력을 텍스트 파일로 로깅

이 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>

위의 출력 / 로그를 콘솔이 아닌 텍스트 파일로 인쇄하고 싶습니다. 어떤 제안?

해결법

  1. ==============================

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

    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 구성에 대한 자세한 내용은 여기를 참조하십시오.

  2. from https://stackoverflow.com/questions/15203785/logging-the-output-of-a-map-reduce-job-to-a-text-file by cc-by-sa and MIT license