CDH4 LogPath and LogLevel Configurations

Hadoop実践シリーズの続きで、地味ながら重要な所をいきます。

CDH4+YARNの運用において、どのログを見れば良いのか、ログレベルはどのように設定するのか、というなんとも痒いところに手が届く孫の手編となります。



はじめに

  • 本件に関連して、前回の外道式設定を若干更新してあります
  • ここではログレベルをWARNとしています


  • 各ノードのログ

    デーモンとしてのログで、HDFSとYARNに分かれてます。

    ログ保存パス

  • /etc/hadoop/conf/hadoop-env.sh
  • /etc/hadoop/conf/yarn-env.sh
  • この下に、システム名やホスト名を含むファイル名ができます。

    ログレベル

    ノードでは log4j.properties の hadoop.root.logger ではなくこちらを使うようですが・・・

  • /etc/hadoop/conf/hadoop-env.sh
  • /etc/hadoop/conf/yarn-env.sh
  • 他のどのシステムがどちらを使うかわからないので両方設定しておくべきです。

  • /etc/hadoop/conf/log4j.properties
  • propertiesじゃなくxmlならこうですね。

  • /etc/hadoop/conf/log4j.xml
  • RFAなどのFilterについては過去記事参照で。


    アプリケーション実行時の全設定ログ

    色んな設定があるので、ジョブは結局どのような設定の元に実行されたのか、をはっきり知っておきたい場合があります。
    hive> SET -v; でもある程度出ますが全ては出ないので、このログを確認するとよいです。

    ログ保存パス

  • /etc/hadoop/conf/mapred-site.xml
  • これで例えばこのような日時やジョブIDを含んだパスに設定XMLが保存されます。

  • /mr-history/done/2012/09/07/000025/job_1342083737352_25270_conf.xml


  • アプリケーション実行中の混合ログ

    Map, Reduce, ApplicationMaster と、いわゆるContainerのログを保存できます。

    ログ保存パス

    yarn.log-aggregation-enable はデフォルト false で、その場合は一切このログは保存されません。

  • /etc/hadoop/conf/yarn-site.xml
  • ログは例えばこのような、ユーザ名・ジョブID・実行したSLAVEサーバのホスト名などを含んだパスに保存されます。

  • /yarn/app-logs/username/logs/application_1342083737352_0004/hostname-of-slave_36367

  • ログレベル

    このログはデフォルトでINFOなので、本番だとかなりの量になってしまいます。WARNだけでもかなり多いです。

    Map/Reduce
    まずMapReduceのログを抑制します。この設定はジョブを実行するクライアントに必要で、編集後のジョブにそのまま反映されます。

  • /etc/hadoop/conf/mapred-site.xml
  • ApplicationMaster
    次にApplicationMasterのログを抑制します。この設定は新規ファイルを利用するようになっていて発見に苦労しました。ジョブ実行時にSLAVEサーバでプロセスを表示させるとApplicationMasterはこのような感じになっていて、container-log4j.properties を見るようになっていることがわかります。

    なので新しくContainer用のログ設定ファイルを用意します。SLAVEサーバで必要とし、ノードの再起動はしなくとも次のジョブから反映されます。

  • /etc/hadoop/conf/container-log4j.properties
  • この集約ログは、ジョブが全て終わってレスポンスが返った後にまとめてHDFSに書き込まれます。



    設定が hdfs/yarn, env.sh, site.xml, log4j と散らばっていて、保存先もローカルファイル, HDFSとあって正直めんどくさかったですが、ログは大事なのでちゃんと頑張ってみました。

    CDH4を扱う『斬新なブログ』の名をほしいままにするための闘いは果てしないのであった・・・