MapReduce编程实例(一)

本文介绍了在集成环境中运行MapReduce程序WordCount的详细步骤,包括项目创建、配置、运行以及代码分析。WordCount程序用于统计文本中单词出现的次数,其代码主要包含主函数、Mapper和Reducer三个部分。Mapper解析字符串并写入context,Reducer计算单词数量。通过反射设置Job属性,并在HDFS上运行和检查结果。
摘要由CSDN通过智能技术生成

前提准备:

1.hadoop安装运行正常。Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装

2.集成开发环境正常。集成开发环境配置请参考 :Ubuntu 搭建Hadoop源码阅读环境


MapReduce编程实例:

MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析

MapReduce编程实例(二),计算学生平均成绩

MapReduce编程实例(三),数据去重

MapReduce编程实例(四),排序

MapReduce编程实例(五),MapReduce实现单表关联




开发示例:WordCount

本文例详细的介绍如何在集成环境中运行第一个MapReduce程序 WordCount,以及WordCount代码分析

新建MapReduce项目:

 

Finish生成项目如下,建立WordCount.java类



WordCount.java类代码以下详细解,先运行起来。

在HDFS建立新目录并上传若干实验用的文本,上传后如下:


  • 12
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,下面是一个简单的 MapReduce 编程实例: 假设我们有一个文本文件,其中每一行是一个单词。我们想要对这些单词进行计数,并且按照出现次数从大到小进行排序。 首先,我们需要编写 Map 函数,将每个单词映射到一个键值对。键是单词本身,值是 1(表示出现了一次): ```python def map_function(line): words = line.strip().split() for word in words: yield word, 1 ``` 然后,我们需要编写 Reduce 函数,将相同单词的计数相加: ```python def reduce_function(word, counts): yield word, sum(counts) ``` 最后,我们可以使用 Hadoop MapReduce 框架来执行这个程序,其中输入数据是一个文本文件,输出数据是一个按照单词出现次数排序的列表: ```python from mrjob.job import MRJob from mrjob.step import MRStep class WordCount(MRJob): def steps(self): return [ MRStep(mapper=self.map_function, reducer=self.reduce_function), MRStep(reducer=self.reduce_sort) ] def map_function(self, _, line): words = line.strip().split() for word in words: yield word, 1 def reduce_function(self, word, counts): yield word, sum(counts) def reduce_sort(self, word, counts): yield None, (sum(counts), word) def reducer_final(self, _, word_counts): for count, word in sorted(word_counts, reverse=True): yield word, count if __name__ == '__main__': WordCount.run() ``` 这个程序使用两个 MapReduce 步骤。第一个步骤是对每个单词计数,第二个步骤是对计数进行排序。 这只是一个简单的例子,实际的 MapReduce 程序可能更加复杂。但是,这个例子可以帮助你理解 MapReduce 的基本思想和编程模型。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值