[英]How to distribute the initial input files to nodes in Hadoop MapReduce?
[英]How Hadoop distribute data and mapreduce task across multiple data nodes
我是hadoop的新手,并且阅读了很多页面的hadoop mapreduce和hdfs,但仍然无法清除一个概念。
如果是这样的话,那么这个问题可能是愚蠢的或毫无用处的。 我的问题是,假设我在hadoop中为文件大小为1 GB的文件创建了一个字计数程序,其中map函数将每一行作为输入,并作为键值对输出,而reduce函数将输入作为键-值对,然后简单地迭代列表并计算单词在该文件中出现的总次数。
现在我的问题是,由于此文件存储在多个数据节点中的块中,并且map-reduce在每个数据节点上并行执行。 假设我的文件存储在两个数据节点上,第一个数据节点上的文件包含单词“ hadoop” 5次,第二个数据节点上的文件包含单词“ hadoop” 7次。因此,整个地图简化过程的输出基本上是:
Hadoop的:7
Hadoop的:5
因为2个map-reduce函数在2个不同的数据节点上并行执行,但是输出应为两个文件上“ hadoop”字的计数之和,即:hadoop:13
因此,我将如何实现这一目标,或者我是否在这里缺少一些概念。请帮助我,我对这个概念一无所知,如果无法让您理解我要问的问题,我深感抱歉。
我认为您完全缺少了reducer的概念,因为那恰好是reducer的功能,reducer的输入将是一个键(在这种情况下为hadoop)和与此键关联的值列表(7和5),因此您的reducer程序将迭代值列表,进行求和,然后进行hadoop,13。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.