2016-10-05 5 views
0

私はsparkクラスタのYARN上でアプリケーションを実行していますが、ログファイルが作成され、ログメッセージの書式を変更する必要がある独自のパスを設定する必要があります。このため、YARNが提供するデフォルトのlog4j.propertiesファイルの代わりに、カスタマイズしたLog4j.propertiesファイルを使用したいと思います。これはどうすればできますか?YARNのLog4jプロパティファイルをカスタマイズする方法

+0

に検索結果が表示されるはずです。 –

+0

これは、デフォルトのlog4j.propertiesファイルを変更することで私の問題を解決することはできません。他のアプリケーションのログファイルも、デフォルトの.propertiesファイルを参照するため影響を受けます。代わりに、独自のカスタマイズされた.propertiesファイルを使用して、いくつかの特定のアプリケーションで使用したいと考えています。これはどうすればできますか? –

+0

独自のlog4jプロパティファイルを作成し、sparkクラスパスにプロパティファイルを追加します。 –

答えて

0

このスパーク送信スクリプトを使用して、log4j.propertiesをYarnにプッシュして、ロギングパターンを制御できるようにしました。私は特に、完全なパッケージ名が必要なので、結果として得られるYarnアプリケーションログからどのクラスでログを記録するかをgrepすることができます。

spark-submit \ 
    --class com.acme.Main \ 
    --master yarn \ 
    --deploy-mode cluster \ 
    --driver-memory 2g \ 
    --executor-memory 1g \ 
    --driver-class-path "./conf" \ 
    --files "./conf/app.properties,./conf/log4j.properties" \ 
    ./lib/my-app-uber.jar \ 
    "[email protected]" 

個人的に私が唯一ConsoleAppenderを使用し、すべての私のアプリケーションログが他のすべてと一緒に標準の糸ログに表示されます。 HDFSでRollingFileAppenderを使用することはできません。

log4j.rootLogger=INFO, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %-5p %c:%L -> %m%n 

あなたは、log4jのファイルに `log4j.appender.file.File =を/ tmp/application.log`プロパティを追加して、チェック

yarn logs -applicationId <your-app-id> 
関連する問題