2016-03-23 7 views
2

以前の回答で説明したように、Sparkクラスタの冗長性を変更する理想的な方法は、corresponding log4j.propertiesを変更することです。 dataprocスパークが糸上で動作するにはしかし、そこで私たちは、グローバルコンフィギュレーションを調整する必要があると/ usr/libに/火花/ confにSparkのログレベルを調整するdataprocで最もエレガントで堅牢な方法は何ですか?

いくつかの提案ではない:dataprocオン

我々はいくつかのgcloudコマンドとプロパティを持っているが、我々は渡すことができますクラスタの作成中に--propertiesコマンドは、設定ファイルを変更することはできません

:ドキュメントからのようSee documentation は、たぶん

--properties 'log4j:hadoop.root.logger=WARN,console' 

ではなく指定して/ etc/Hadoopの/ confの下にlog4j.propertiesを変更することが可能です上記の は表示されません。

もう一つの方法は、クラスタの初期化時にシェルスクリプトを使用してのsedを実行するために、次のようになります。

# change log level for each node to WARN 
sudo sed -i -- 's/log4j.rootCategory=INFO, console/log4j.rootCategory=WARN, console/g'\ 
        /etc/spark/conf/log4j.properties 
sudo sed -i -- 's/hadoop.root.logger=INFO,console/hadoop.root.logger=WARN,console/g'\ 
        /etc/hadoop/conf/log4j.properties 

しかし、それは十分にあるか、我々としてもENV変数hadoop.root.loggerを変更する必要がありますか?

+0

第2の方法は実際には私にとってはうまくいますが、時間とリリースによって変更される可能性のある設定ファイルを編集しなくても良い方法があるかどうかは不思議です。 – Frank

答えて

4

現時点では、--propertiesは余分なlog4j設定をサポートしていませんが、それは確かに追加に関する話です。いくつかの考慮事項は、Spark対Yarn対他の長時間実行するデーモンのログ設定(hiveserver2、HDFSデーモンなど)を細かく制御する能力と、すべてに至る最小/単純な設定を維持することと比較して、共有の方法で。

は、少なくともスパークドライバログの、あなたは/etc/*/confのいずれかの設定よりも優先すべきジョブ提出時間を設定--driver-log-levelsを使用することができますが、そうでない場合は、あなたが説明するように、initのアクションが編集するための合理的な方法です時間の経過とともに変更される可能性があることを覚えておいてください。

関連する問題