2017-09-19 14 views
0

私はPySparkアプリケーションで作業しており、糸クラスターモードを展開しています。私はログ出力ストリームハンドラとしてstdoutを与えました。私はYARN UIのログを見ることができました。しかし、/ var/log/sparkapp/yarnの下にstdoutのログが見つかりませんでした。そこにはstderrのログだけが表示されます。これの理由は何でしょうか?PySpark stdoutログを見つけることができません

これは、アプリケーションでの私のログの一部

import logging 
import sys 

logger = logging.getLogger(__name__) 
logger.setLevel(logging.INFO) 
lsh = logging.StreamHandler(sys.stdout) 
lsh.setLevel(logging.INFO) 
lformat = logging.Formatter(fmt='%(asctime)s.%(msecs)03d %(levelname)s :%(name)s - %(message)s', datefmt='%m/%d/%Y %I:%M:%S') 
lsh.setFormatter(lformat) 
logger.addHandler(lsh) 

log4j.properties

log4jspark.root.logger=INFO,console 
log4jspark.log.dir=. 
log4jspark.log.file=spark.log 
log4jspark.log.maxfilesize=1024MB 
log4jspark.log.maxbackupindex=10 

# Define the root logger to the system property "spark.root.logger". 
log4j.rootLogger=${log4jspark.root.logger}, EventCounter 

# Set everything to be logged to the console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.target=System.err 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 
log4j.appender.console.Threshold=INFO 

# Settings to quiet third party logs that are too verbose 
log4j.logger.org.eclipse.jetty=WARN 
log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR 
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO 
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO 

答えて

0

あなたのスパークジョブのロガーを取得する代わりに、これを試してみてくださいです:

log4jLogger = sc._jvm.org.apache.log4j 
logger = log4jLogger.LogManager.getLogger(__name__) 

を変更することができますからtargetファイルを変更する:

log4j.appender.console.target=System.out 
関連する問題