1

私のファイル サイズは 100 MB で、デフォルトのブロック サイズは 64 MB です。入力分割サイズを設定しない場合、デフォルトの分割サイズはブロック サイズになります。分割サイズも 64 MB になりました。

この 100 MB のファイルを HDFS にロードすると、100 MB のファイルが 2 つのブロックに分割されます。つまり、64 MB と 36 MB です。たとえば、以下はサイズが 100 MB の詩の歌詞です。このデータを HDFS にロードすると、1 行目から 16 行目の半分までが 1 つの分割/ブロック ( 「It made the」まで) と 16 行目の残りの半分 (子供たちが笑ったり遊んだりする) として正確に 64 MB になるとします。 2 番目のブロック (36 MB) としてファイルの末尾。2 つのマッパー ジョブがあります。

私の質問は、最初のマッパーが 16 行目 (つまり、ブロック 1 の 16 行目) をブロックが行の半分しかないと見なす方法、または 2 番目のマッパーがブロック 2 の最初の行も半分を持っていると見なす方法です。この線。

Mary had a little lamb
Little lamb, little lamb
Mary had a little lamb
Its fleece was white as snow
And everywhere that Mary went
Mary went, Mary went
Everywhere that Mary went
The lamb was sure to go

He followed her to school one day
School one day, school one day
He followed her to school one day
Which was against the rule
It made the children laugh and play
Laugh and play, laugh and play
It made the children laugh and play
To see a lamb at school

And so the teacher turned him out
Turned him out, turned him out
And so the teacher turned him out
But still he lingered near
And waited patiently
Patiently, patiently
And wai-aited patiently
Til Mary did appear

または、1 行を分割するのではなく、64 MB を分割している間、hadoop は 16 行全体を考慮しますか?

4

2 に答える 2