Hadoop中的(key,value)对是否总是('text',1)?

时间:2015-04-24 09:19:05

标签: hadoop hadoop2

我是Hadoop的新手。

你能告诉我(关键/价值)对吗?价值总是一个吗? reduce步的输出总是一个(键/值)对吗?如果是,那么(键/值)数据如何进一步使用?

请帮帮我。

2 个答案:

答案 0 :(得分:1)

由于Hadoop教程中的wordcount示例,我猜你要问的是(键,值)对的'one'值。所以,答案是否定的,并不总是“一个”。

MapReduce的Hadoop实现通过在整个工作流中传递(键,值)对,从输入到输出:

  • 映射步骤:一般来说(有其他特殊情况,具体取决于输入格式),映射器逐行处理分配给它们的分割中的数据;这些行作为(键,值)对传递给map方法,告诉分割中行的偏移量(键)和行本身(值)。然后,它们在输出端产生另一个(键,值)对,其含义取决于您正在实现的映射函数;有时它将是一个变量键和一个固定值(例如在wordcount中,键是单词,值总是'one');其他时候,值将是行的长度,或者以前缀开头的所有单词的总和......无论你想象什么;密钥可以是一个单词,一个固定的自定义密钥......

  • 减少步骤:通常,reducer接收由密钥相同的映射器生成的(key,value)对的列表(这取决于你正在使用的组合器类,当然这通常是这样)。然后,它们在poutput中产生另一个(键,值)对,同样,这取决于应用程序的逻辑。通常,reducer用于聚合关于相同密钥的所有值。

这是一个非常简单快速且不详细的解释,我鼓励您阅读一些关于它的官方文档,或特别是this等文献。

答案 1 :(得分:0)

希望您已经开始使用Wordcount示例学习mapreduce。

键/值对是mapreduce接受执行的记录实体。用于从源读取记录的InputFormat类和用于提交结果的OutputFormat类仅使用记录作为键/值格式进行操作。

键/值格式是最适合表示通过map-partition-sort-combine-shuffle-merge-sort-reduce mapreduce生命周期的不同阶段的记录。请参考,

http://www.thecloudavenue.com/2012/09/why-does-hadoop-uses-kv-keyvalue-pairs.html

键/值数据类型可以是任何内容。您使用的Text / Interwritable键/值是用于wordcount的最佳对。根据您的要求,它实际上可以是任何东西。

请花一些时间阅读hadoop权威指南/雅虎教程以获得更多理解。快乐学习......