我知道hadoop中物理块和inputsplits之间的区别。顺便说一句,我使用的是hadoop2.0版本(Yarn加工)。
我有一个非常小的输入数据集。大小可能为1.5 mb。当我运行使用这个小数据集的mapredce程序时,在运行期间,它显示有两个输入拆分。当这个小数据集的大小小于128MB时,为什么要将它一分为二呢。
在我的理解中,块大小被配置为128mb大小,而输入分割是数据的逻辑分割。意味着每次拆分从何处开始(如在哪个节点和哪个块编号中)以及在何处结束。数据的起始位置和结束位置是拆分的。
我不知道在一个小数据集中分裂的原因。
有人能解释一下吗?谢谢nath
1条答案
按热度按时间col17t5w1#
首先,试着了解如何决定拆分的数量,这取决于两件事:
如果您没有定义任何自定义拆分大小,那么它将采用默认大小,即块大小,在您的情况下为128 mb。
这一点很重要,现在如果您有两个小文件,它将保存在两个不同的块中。所以分裂的数目是两个。
你的答案是在上面两点这是额外的信息,现在之间的关系Map器的数量和分裂的数量是1-1,所以分裂的数量将是相同的Map器的数量。