MapReduce InputSplit vs Hadoop block

1. MapReduce InputSplit vs Hadoop中的块

我们将学习HDFS中的块是什么,MapReduce InputSplit是什么,以及Hadoop中MapReduce InputSplit与块大小之间的区别,深入了解Hadoop基础知识。

2. MapReduce InputSplit和HDFS块 – 介绍

HDFS Block

块是存储数据的硬盘上的连续位置。通常,FileSystem将数据存储为块的集合。以同样的方式,HDFS将每个文件存储为块。 Hadoop应用程序负责将数据块分布到多个节点上。

MapReduce InputSplit

由单独的Mapper处理的数据由InputSplit表示。Split被分成记录,每个记录(这是一个键值对)由map处理。map任务的数量等于InputSplits的数量。

最初,MapReduce任务的数据存储在输入文件中,输入文件通常驻留在HDFS中。 InputFormat用于定义这些输入文件如何拆分和读取。 InputFormat负责创建InputSplit。

3. MapReduce InputSplit与Hadoop中的块

3.1  InputSplit与Hadoop中的块大小

块 – HDFS块的默认大小为128 MB,我们可以根据我们的要求进行配置。文件的所有块的大小相同,但最后一个块的大小可以相同或更小。这些文件被分成128 MB块,然后存储到Hadoop FileSystem中。

InputSplit – 默认情况下,分割大小近似等于块大小。 InputSplit是用户自定义的,用户可以根据MapReduce程序中的数据大小来控制分割大小。

3.2 Hadoop块中的数据表示与InputSplit

块 – 这是数据的物理表示。它包含可读取或写入的最小数量的数据。

InputSplit – 它是块中数据的逻辑表示。它在MapReduce程序或其他处理技术中的数据处理过程中使用。 InputSplit不包含实际数据,而是对数据的引用。

3.3  Hadoop中的Block vs InputSplit示例

考虑一个例子,我们需要将文件存储在HDFS中。 HDFS将文件存储为块。块是可从磁盘存储或检索的最小数据单位,块的默认大小为128MB。 HDFS将文件分解成块并将这些块存储在群集中的不同节点上。假设我们有一个130 MB的文件,所以HDFS会将这个文件分解成2个块。

现在,如果我们想要对块执行MapReduce操作,它将不会被处理,因为第二个块是不完整的。 因此,这个问题由InputSplit解决。 InputSplit将数据块逻辑分组作为单个块,因为InputSplit包含下一个块的位置和完成块所需的数据的字节偏移量。

4. 结论

由此得出结论:InputSplit只是一个逻辑数据块,即它只有块地址或位置的信息。

在MapReduce执行期间,Hadoop扫描块并创建InputSplits,并将每个inputSplit分配给各个映射器进行处理。 因此,Split充当块和mapper之间的代理。

MapReduce InputSplit vs Hadoop block

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 二十 六 = 三十 六