mapreduce为什么即使对于一个很小的文件,拆分(文本文件)的数目也超过1

rjjhvcjd  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(224)

我知道hadoop中物理块和inputsplits之间的区别。顺便说一句,我使用的是hadoop2.0版本(Yarn加工)。
我有一个非常小的输入数据集。大小可能为1.5 mb。当我运行使用这个小数据集的mapredce程序时,在运行期间,它显示有两个输入拆分。当这个小数据集的大小小于128MB时,为什么要将它一分为二呢。
在我的理解中,块大小被配置为128mb大小,而输入分割是数据的逻辑分割。意味着每次拆分从何处开始(如在哪个节点和哪个块编号中)以及在何处结束。数据的起始位置和结束位置是拆分的。
我不知道在一个小数据集中分裂的原因。
有人能解释一下吗?谢谢nath

col17t5w

col17t5w1#

首先,试着了解如何决定拆分的数量,这取决于两件事:
如果您没有定义任何自定义拆分大小,那么它将采用默认大小,即块大小,在您的情况下为128 mb。
这一点很重要,现在如果您有两个小文件,它将保存在两个不同的块中。所以分裂的数目是两个。
你的答案是在上面两点这是额外的信息,现在之间的关系Map器的数量和分裂的数量是1-1,所以分裂的数量将是相同的Map器的数量。

相关问题