1

マップ削減アーキテクチャの洞察を得ようとしています。http://answers.oreilly.com/topic/2141-how-mapreduce-works-with-hadoop/の記事を参考にしています。mapreduce フレームワークのコンポーネント JobClient についていくつか質問があります。私の質問は次のとおりです。

JObClient はどのようにデータの入力分割を計算しますか?

私が相談しているものによると、Job Clientは、ジョブの実行中に指定されたHDFSの入力パスにあるデータの入力分割を計算します。この記事では、Job Client がリソース (jar および計算された入力分割) を HDFS にコピーすると述べています。入力データが HDFS にある場合、なぜ jobClient は計算された入力分割を HDFS にコピーするのかという質問があります。

Job Client が入力分割を HDFS にコピーすると仮定しましょう。JOb が Job Tracker に送信され、Job tracker がジョブを詳細化すると、なぜ HDFS から入力分割を取得するのでしょうか?

私の質問が明確でない場合はお詫び申し上げます。私は初心者です。:)

4

2 に答える 2

0

入力分割の計算は、入力形式によって異なります。典型的なテキスト入力形式の場合、分割サイズを計算するための一般的な式は次のとおりです。

  max(mapred.min.split.size, min(mapred.max.split.size, dfs.block.size))

またはデフォルトで

入力分割サイズ = mapred.min.split.size < dfs.block.size < mapred.max.split.size

mapred.min.split.size
= 最小分割サイズ
mapred.max.split.size - 最大分割サイズ
dfs.block.size= DFS ブロック サイズ

DB 入力形式の場合、分割サイズは
(合計レコード数 / マッパー数) です。

上記のように、入力分割数とサイズは、マッパー タスクとレコード リーダーに与えられるメタ情報です。

于 2013-04-18T14:58:41.200 に答える