ファイルが名前ノードによってブロックに分割され、HDFSに格納されていることを知っています。しかし、ファイルが分割されると、ブロックに行の一部が含まれる可能性があります。私の理解は正しいのですか?だから、もし私が各行を読み込む必要があるマップ操作があれば、私はマッパーで処理する行の一部が欠けてしまいます。Namenodeファイルをブロックに分割する
ありがとうございます!
ファイルが名前ノードによってブロックに分割され、HDFSに格納されていることを知っています。しかし、ファイルが分割されると、ブロックに行の一部が含まれる可能性があります。私の理解は正しいのですか?だから、もし私が各行を読み込む必要があるマップ操作があれば、私はマッパーで処理する行の一部が欠けてしまいます。Namenodeファイルをブロックに分割する
ありがとうございます!
はい、行が2つのブロックに分割されている可能性があります。ブロックの最後のマッパーが使用するリーダーは、次のブロックの最初の行を読み取り、処理します。最初のブロックでない場合、リーダーは常に最初の行をスキップします。少なくともテキストファイルの場合。他のフォーマットは異なった働きをします。あなたがRojoSamの答え@に加えてライン
のどの部分を見逃すことはありません
、SPLIT_SLOP
パラメータは、他のブロックからの単一ファイルのデータを読み取るためにRecordReaderによって使用されます。 SPLIT_SLOP
は、データが単一のデータノードで完全に利用可能でない場合、リモートホストから%ofのデータを読み取るhadoopジョブを行います。