Mapreduce中的块

问题描述 投票:1回答:2

我有一个非常重要的问题,因为我必须发表有关mapreduce的演讲。我的问题是>我已经读到mapreduce中的文件分为几个块,每个块都在3个不同的节点中复制。该块可以是128 M.b.这是Bloc的输入文件吗?我的意思是这个128 MB的块将被分割成几部分,每个部分都将进入singel地图?如果是,那么这128 M.B将被分为哪个大小?或文件分成块,而此块是映射器的输入我有点困惑您能看一下照片并告诉我哪个是对的。

Here HDFS File is divided into blocks and every singel block 128. MB will be as input for 1 Map

Here the HDFS file Is A Block and this 128 M.B will be splitting and every part will be input for 1 Map

hadoop mapreduce
2个回答
0
投票

假设您有一个2GB的文件,并且想要将该文件放入HDFS,那么将有2GB / 128MB = 16个块,这些块将分布在不同的DataNodes上。

根据文件偏移进行数据拆分。分割文件并将其存储在不同块中的目标是并行处理和数据故障转移。

拆分是数据的逻辑拆分,主要在使用Map / Reduce程序或Hadoop中的其他数据处理技术进行数据处理期间使用。分割大小是用户定义的值,您可以根据数据量(正在处理多少数据)选择自己的分割大小。

Split主要用于控制Map / Reduce程序中Mapper的数量。如果尚未在Map / Reduce程序中定义任何输入分割大小,则默认的HDFS块分割将被视为输入分割。 (即,输入拆分=输入块。因此对于2 GB的文件,将触发16个映射器)。如果将“拆分大小”定义为100 MB(请说),则将触发21个映射器(2000MB为20个映射器,而48MB为21st映射器)。

希望这消除了您的疑问。


0
投票

HDFS将文件存储为块,每个块的大小为128Mb(默认)。Mapreduce处理此HDFS文件。每个映射器处理一个块(输入拆分)。因此,为回答您的问题,单个块大小为128 Mb,将不会进一步拆分。

注意:mapreduce上下文中使用的输入拆分大小是逻辑拆分,而HDFS中提到的拆分大小是物理拆分。

© www.soinside.com 2019 - 2024. All rights reserved.