2017-10-16 4 views
0

저는 Spark의 모든 log4j 속성에 대한 참조를 찾고 어려움을 겪고 있습니다. 나는 많은 사람들이 그것을 보았다는 많은 예를 발견했다. 그러나 나는 그들 모두를 가지고있는 어딘가에 참고가 있는지 알아보기 위해 노력하고 있습니다. 내 특정 유스 케이스에 대한 Spark Log4j 속성에 대한 참조가 있습니까?

, 나는 불꽃 제출 작업을 발사하여 데이터의 일련의 변환을 수행하는 몇 가지 코드를 쓰고, 그 다음 다른 사용자가 확장/사용할 수 있습니다. 기본적으로 스파크가 튀는 것을 대부분 필요로하지 않으며 log4j.rootLogger = WARN, stdout과 같은 것을 설정하는 것이 쉽습니다. 그러나 INFO에는 화면에 인쇄하기 좋은 유용한 비트가 있습니다. 특히 :

org.apache.spark.deploy.yarn.Client (Logging.scala:logInfo(54)) - 
    client token: Token { kind: YARN_CLIENT_TOKEN, service: } 
    diagnostics: N/A 
    ApplicationMaster host: N/A 
    ApplicationMaster RPC port: -1 
    queue: **** 
    start time: 1508185983070 
    final status: UNDEFINED 
    tracking URL: ***My tracking URL*** 
    user: ***User*** 

더 구체적으로 추적 URL입니다. Log4j에 대한 나의 제한된 지식으로 인해 다소 다소 어려울 수도 있습니다. 나는 다음과 같은 일을 시도했다 :

org.apache.spark.deploy.yarn.Client=Info 

그러나 적법한 로깅 속성은 아닙니다. Spark에서 그 정보를 얻을 수있는 방법이 있습니까? 설정 가능한 모든 로깅 속성을 볼 수있는 트릭이 있습니까?

감사합니다.

업데이트 나는이 알아낼 수 있었다. 그것의 대부분은 log4j.properties가 어떻게 작동하는지 알지 못해서 발생했지만 지금은 훨씬 더 잘 처리됩니다.

당신은 로거를 설정하고 클래스 당 수준을 기록하고, 그 모든 자식 클래스까지 지속될 수 있습니다.

나는 이런 걸보고 내 log4j.properties를 변경 :

log4j.logger.org.apache.spark=INFO, RollingAppender 
log4j.additivity.org.apache.spark=false 
log4j.logger.org.apache.hadoop=INFO, RollingAppender 
log4j.additivity.org.apache.hadoop=false 
log4j.logger.org.spark_project.jetty=INFO, RollingAppender 
log4j.additivity.org.spark_project.jetty=false 
log4j.logger.org.apache.spark.deploy.yarn.Client=INFO, RollingAppender 
log4j.additivity.org.apache.spark.deploy.yarn.Client=false 

을 그리고 그것은 거의 (약간 티아고 공유 링크에서 수정 된) 파일에 YARN 로그에있는 모든 스파크를 리디렉션합니다.

중요한 것들 내가 잃어버린 ...

1) 나는 log4j.logger.CLASS_NAME을 포함하는 데 필요한, 내가 log4j.logger 비트 누락되었다 ..

2)의 log4j이 필요합니다. additivity.CLASS_NAME = false. 이것이 없으면 INFO를 기본 설정으로 로깅합니다.

은 처음에는 꽤 혼란하지만 패턴을 일단 감각의 비트를 만들기 시작한다.

답변

0

난 당신이 해커 정오에이 문서를 살펴 제안합니다 : 그것은 조금 더 복잡한 당신이 불꽃으로 원사 응용 프로그램에서 자신의 로그를 생성 할 경우 스파크에서 로그를 생성하는 것입니다 https://hackernoon.com/how-to-log-in-apache-spark-f4204fad78a

제출 .

+0

감사합니다. Thiago, 매우 유용합니다. 이미 알고있는 한 가지 도전은 루트 로거를 설정하지 않으면 로깅이 콘솔에 출력된다는 것입니다. 모든 스파크 노이즈에 대한 파일 로깅 우선 순위를 고려하지 않습니다. 그 중 일부는 원사도 있고, 내가 겪고있는 문제의 일부는이를 제어하기 위해 조정할 로그 설정을 아는 것입니다. 예를 들어 "INFO org.apache.spark.deploy.yarn.Client"가 내 콘솔에 나타납니다. log4j.logger.org.apache.spark.deploy.yarn.Client = WARN과 같은 설정을 시도했지만 아무 것도하지 않는 것 같습니다.그걸 묶어 둘 수있는 방법이 있니? –