mapreduce中的hadoop块

daupos2t  于 2021-05-27  发布在  Hadoop
关注(0)|答案(2)|浏览(276)

我有一个非常重要的问题,因为我必须做一个关于MapReduce的演示。我的问题是:
我读到map reduce中的文件被划分为块,每个块在3个不同的节点中复制。这个块可以是128 mb,这个块是输入文件吗?我的意思是这个128MB的块会被分成几个部分,每个部分都会被放到一张Map上?如果是这样,那么这128 mb将被分为哪种大小?或者文件分成块,这个块是mapper的输入,我有点困惑。
你能看看这张照片并告诉我哪张是对的吗。
这里hdfs文件分为块和每个块128。mb将作为1个Map的输入
在这里,hdfs文件是一个块,这个128m.b将被拆分,每个部分将被输入一个Map

sbtkgmzw

sbtkgmzw1#

假设你有一个2gb的文件,你想把这个文件放在hdfs中,那么会有2gb/128mb=16个块,这些块会分布在不同的数据节点上。
根据文件偏移量进行数据拆分。将文件拆分并存储到不同的块中的目标是并行处理和数据故障转移。
split是数据的逻辑拆分,基本上在hadoop中使用map/reduce程序或其他数据处理技术进行数据处理时使用。拆分大小是用户定义的值,用户可以根据数据量(处理的数据量)选择自己的拆分大小。
split主要用于控制map/reduce程序中Map器的数量。如果您没有在map/reduce程序中定义任何输入分割大小,那么默认的hdfs块分割将被视为输入分割(i、 例如,输入分割=输入块。因此,一个2GB文件将触发16个Map器)。如果split size定义为100MB(比方说),那么将触发21个Map器(2000mb为20个Map器,48mb为21个Map器)。
希望这能消除你的疑虑。

7vhp5slm

7vhp5slm2#

hdfs将文件存储为块,每个块的大小为128mb(默认值)。mapreduce处理此hdfs文件。每个Map器处理一个块(输入分割)。所以,为了回答您的问题,128MB是一个块大小,它不会被进一步拆分。
注意:mapreduce上下文中使用的输入拆分大小是逻辑拆分,而hdfs中提到的拆分大小是物理拆分。

相关问题