2017-02-14 12 views
1

spark-submitでは、log4j.propertiesの指定方法は?spark-submit、log4j.propertiesの指定方法

ここに私のスクリプトです。私はすべての組み合わせを試しており、ローカルノードを1つだけ使用しています。 log4j.propertiesがロードされていないように見えますが、すべてのデバッグレベル情報がダンプされました。

current_dir=/tmp 
DRIVER_JAVA_OPTIONS="-Dlog4j.configuration=file://${current_dir}/log4j.properties " 

spark-submit \ 
--conf "spark.driver.extraClassPath=$current_dir/lib/*" \ 
--conf "spark.driver.extraJavaOptions=-Djava.security.krb5.conf=${current_dir}/config/krb5.conf -Djava.security.auth.login.config=${current_dir}/config/mssqldriver.conf" \ 
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file://${curent_dir}/log4j.properties " \ 
--class "my.AppMain" \ 
--files ${current_dir}/log4j.properties \ 
--master local[1] \ 
--driver-java-options "$DRIVER_JAVA_OPTIONS" \ 
--num-executors 4 \ 
--driver-memory 16g \ 
--executor-cores 10 \ 
--executor-memory 6g \ 
$current_dir/my-app-SNAPSHOT-assembly.jar 

のlog4jプロパティ:

log4j.rootCategory=INFO, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

log4j.additivity.org=false 

log4j.logger.org=WARN 
parquet.hadoop=WARN 
log4j.logger.com.barcap.eddi=WARN 
log4j.logger.com.barcap.mercury=WARN 
log4j.logger.yarn=WARN 
log4j.logger.io.netty=WARN 
log4j.logger.Remoting=WARN 
log4j.logger.org.apache.hadoop=ERROR 

# this disables the table creation logging which is so verbose 
log4j.logger.hive.ql.parse.ParseDriver=WARN 

# this disables pagination nonsense when running in combined mode 
log4j.logger.com.barcap.risk.webservice.servlet.PaginationFactory=WARN 
+0

実行者に対して '-Dlog4j.configuration'を指定するだけです。それは意図的なのでしょうか? –

+0

Hadoopで '-Dlog4j.configuration ='を使ったことはありませんでした。 "log4j.properties"はデフォルトのファイル名なので、ドライバのCLASSPATHにファイルを含む*ディレクトリ*を追加しようとすると、Log4Jがそれを見つけます。それとももっと簡単なのは、あなたの$ SPARK_CONF_DIRに 'spark-default.conf'と友人と一緒にあなたのファイルをドロップすることです... –

+0

最初にこれを直接実行しようとします。つまり、非常に簡単なプログラムを使用してspark-submit-dirver-オプション "-Dlog4j.configuration = file:///home/username/file.prop"を実行します。それは動作するはずです。そうでなければ、あなたのコードは他のslf4jの実装に依存していて、代わりにその実装を使用している可能性があります(つまり、そのプロパティを取っている可能性があります)。 –

答えて

2
  1. コピー新しいアプリ-スパーク-defaults.confにまで火花defaults.confに
  2. -Dlog4j.configuration =ファイルを追加します:// log4j.propertiesをapp-spark-defaults.confのspark.driver.extraJavaOptionsに追加します。

    spark.driver.extraJavaOptions -XXOther_flag -Dlog4j.configuration =ファイル:たとえば//log4j.properties

  3. 新しいconfファイルに--properties・ファイルを使用して火花を実行します。たとえば :
    火花提出--propertiesファイルアプリ-火花defaults.confに--class my.app.class --master糸--deployモードクライアント〜/ MY-jar.jar

+0

これは疲れましたか?その仕事はありますか? –

+0

はい、それはEMR –

+0

ああで私のために働いた。糸クラスタで実行する方法を把握することができません –

-1

すでにhadoop_home/confにlog4j.propertiesがあります。あなた自身のロガーを追加してください。

+1

ほとんどのインストールでは、ジョブを実行している人は、hadoop_home – Krever

関連する問題