Hadoopジョブは、MapReduceアルゴリズムにしたがってMapとReduceの2フェーズで処理されます。その際、MapフェーズとReduceフェーズの間のデータ授受は、MapReduce作業領域に格納されたファイルを介して行われます。MapReduce作業領域はDFS上ではなく、他のサーバとは共用しない各スレーブサーバ上のローカルディスクに配置されます。
「17.2.1 DFS領域の割り当て」で述べたような入出力負荷の高いHadoopジョブを実行する場合、DFS領域と同様に各スレーブサーバ上のMapReduce作業領域の入出力も高負荷となります。
そのため、MapReduce作業領域には複数のローカルディスクを割り当てることを推奨します。ディスク装置の性能にもよりますが、CPUコア2~3あたり1つのローカルディスクをMapReduce作業領域に割り当てます。また、格納されるのはHadoopジョブ実行後に削除される作業データであるため、可用性のためのRAID構成等は必ずしも必要ではありません。
MapReduce作業領域は、以下のプロパティで指定します。
mapred.local.dir
MapReduce作業領域として使用するディレクトリを指定します。カンマで区切って複数のディクレトリを指定することができます。複数指定する場合には異なるローカルディスクに配置されたディレクトリを指定してください。指定したディレクトリのアクセス権は以下のとおり設定してください。
所有者:グループ : mapred:hadoop アクセス権 : 755
参考
本製品でのデフォルトの指定値は以下のとおりです。
mapred.local.dir=/var/lib/hadoop/mapred/local (mapred-site.xml)
参照
Hadoopジョブの動作の詳細は、「17.5.1 Hadoopジョブとタスク」で説明します。