FairScheduler についての雑記

(この記事ははてブロテスト用に適当に書いたものです。はてな記法のテストも兼ねているため無駄な記述があちこちにあります。ご了承ください)

対象バージョン

CDH3u2

ソースコードの位置

hadoop/src/contrib/fairscheduler/src/java/org/apache/hadoop/mapred/FairScheduler.java

FairScheduler そのもののコードはこれしかないため読むのは非常に楽。

イベントログ

FairScheduler ではイベントログを取得することができる。
なぜかわからないが FairSchedulerのマニュアルに書いてない。
……と思ったらなぜかhtmlソースの中でコメントアウトされていて、実はマニュアルに書いてある。普通はまず気がつかないだろうが。
昔は開発者専用だから見せなくていいよね、ということで外していたようだが*1 、今更見せない理由もないだろうと思って見せるように戻した
方法は簡単で、 "mapred.fairscheduler.eventlog.enabled" を true にすればいいだけ。

ソース

イベントログの起動設定は start() メソッドの冒頭で行われる。

      // Create scheduling log and initialize it if it is enabled
      eventLog = new FairSchedulerEventLog();
      boolean logEnabled = conf.getBoolean(
          "mapred.fairscheduler.eventlog.enabled", false);
      if (!mockMode && logEnabled) {
        String hostname = "localhost";
        if (taskTrackerManager instanceof JobTracker) {
          hostname = ((JobTracker) taskTrackerManager).getJobTrackerMachine();
        }
        eventLog.init(conf, hostname);
      }

実際にどのようなログが出力されるかは、FairScheduler.java の中を eventLog で検索して見ていった方が早い。