初めての Hadoop ジョブを書きました。多くのファイルを処理し、入力ファイルごとに複数の出力ファイルを生成します。2 ノード クラスターで実行していますが、最大の入力セットで約 10 分かかります。以下のカウンターを見て、実行を高速化するために実行できる最適化は何ですか? これらのカウンターで探すべき特定の指標はありますか?
バージョン: 2.0.0-mr1-cdh4.1.2
マップ課題定員:20名
タスク容量を減らす:20
ノードあたりの平均タスク:20
初めての Hadoop ジョブを書きました。多くのファイルを処理し、入力ファイルごとに複数の出力ファイルを生成します。2 ノード クラスターで実行していますが、最大の入力セットで約 10 分かかります。以下のカウンターを見て、実行を高速化するために実行できる最適化は何ですか? これらのカウンターで探すべき特定の指標はありますか?
バージョン: 2.0.0-mr1-cdh4.1.2
マップ課題定員:20名
タスク容量を減らす:20
ノードあたりの平均タスク:20
ここで、ほとんどのデータ削減がマップ フェーズで発生することがわかります (マップ出力バイト数は、HDFS 読み取りバイト数よりもはるかに少なく、マップ入力レコードについても同じです。マップ入力レコードよりもはるかに小さいです)。また、多くの CPU 時間が費やされていることもわかります。また、シャッフル バイト数が少ないこともわかります
。したがって、このジョブは次のとおりです。
a) マップ フェーズで多くのデータ削減が行われます。
b) ジョブは CPU バウンドです。
なのでmapperとreducerのコードは最適化すべきだと思います。I/O はおそらく、このジョブにとって重要ではありません。