복붙노트

[HADOOP] 성공했을 때 PIG 작업 로그 파일을 유지하는 방법.

HADOOP

성공했을 때 PIG 작업 로그 파일을 유지하는 방법.

PIG 스크립트를 실행하는 중에 오류가 발생하면 로그가 생성되어 유지되는 것으로 나타났습니다. 그러나 오류가 없으면 로그 파일이 제거됩니다. 작업이 성공적 일 때에도 로그 파일을 유지할 수 있습니까?

해결법

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

    1.기본적으로 $ PIG_HOME / conf / pig.properties에 설정할 수있는 pig.logfile에 오류 (예 : 스크립트 구문 분석 오류)가 기록됩니다. 상태 메시지도 기록하려면 올바른 log4j.properties 파일을 준비하고 log4jconf 등록 정보에 설정하십시오.

    기본적으로 $ PIG_HOME / conf / pig.properties에 설정할 수있는 pig.logfile에 오류 (예 : 스크립트 구문 분석 오류)가 기록됩니다. 상태 메시지도 기록하려면 올바른 log4j.properties 파일을 준비하고 log4jconf 등록 정보에 설정하십시오.

    예 : log4j.properties.template의 이름을 $ PIG_HOME / conf의 log4j.properties로 변경하고 다음을 설정하십시오.

    log4j.logger.org.apache.pig=info, B
    
    # ***** A is set to be a ConsoleAppender.
    #log4j.appender.A=org.apache.log4j.ConsoleAppender
    # ***** A uses PatternLayout.
    #log4j.appender.A.layout=org.apache.log4j.PatternLayout
    #log4j.appender.A.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    
    # ***** B is set to be a FileAppender.
    log4j.appender.B=org.apache.log4j.FileAppender
    #log4j.appender.B.File=/home/user/pig-distrib/logs/pig_success.log
    log4j.appender.B.File=/home/user/pig-distrib/logs/pig.log
    log4j.appender.B.layout=org.apache.log4j.PatternLayout
    log4j.appender.B.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    log4j.appender.B.Append=true
    

    돼지 v0.10.0 (r1328203)을 사용할 때 성공적인 돼지 작업은 hdfs의 출력 디렉토리에 작업 기록 로그를 쓰지 않는 것으로 나타났습니다. (hadoop.job.history.user.location = $ {mapred.output.dir} / _ logs / history /)

    꼭 이러한 역사를 원한다면 돼지 스크립트에서 mapred.output.dir을 다음과 같이 설정하십시오 :

    set mapred.output.dir '/user/hadoop/test/output';
    
  2. ==============================

    2.log4j.properties 파일이 준비되면 pig.properties 파일을 열고 다음의 주석 처리를 제거하십시오.

    log4j.properties 파일이 준비되면 pig.properties 파일을 열고 다음의 주석 처리를 제거하십시오.

    log4jconf = $ PIG_HOME / conf / log4j.properties

  3. ==============================

    3.오래 된 스레드 부딪 치기

    오래 된 스레드 부딪 치기

    쉬운 방법 출력을 리디렉션하는 것입니다.

    pig -f pig-file 2> xyz.log  -- this will give just the logs
    pig -f pigfile &> xyz.log -- logs + stdout(dumps)
    
  4. from https://stackoverflow.com/questions/11986679/how-to-keep-pig-job-log-file-when-it-is-successful by cc-by-sa and MIT license