Hadoop MapReduce编程的一些个人理解
2015-06-07 17:58
267 查看
首先要实现mapreduce就要重写两个函数,一个是map 另一个是reduce
如果你的输入类型是TextInputFormat(默认),那么,你的map函数的输入将会是:
key : 文件的偏移量(就是values在该文件的位置)
value: 这是一行字符串(hadoop将文件每一行作为输入)
hadoop会给每一行都执行map函数,map函数要做的,就是要将这一行,根据你要实现的功能(比如wordcount)将它拆成一个个(key,value)
(wordcount的拆法就是,key=单词,value=1)
接着,hadoop会将所有的(key,value)汇总,它会将所有key相同的项合并在一起,而value就是一个list,从而形成了一个新的(key,values),然后将这个发送给reduce函数.
通常这个value就是一个list,
reduce函数要实现的功能就是,针对其中一组(key,value),将其按照你要实现的功能,进行运算
(wordcount的做法 ,那么你的key将是一个单词,而value这个list的每一项都是1,只要计算一下有多少个1,那么就知道这个单词的频数是多少了.)
map(key ,value)map函数有两个参数,一个是key,一个是value
如果你的输入类型是TextInputFormat(默认),那么,你的map函数的输入将会是:
key : 文件的偏移量(就是values在该文件的位置)
value: 这是一行字符串(hadoop将文件每一行作为输入)
hadoop会给每一行都执行map函数,map函数要做的,就是要将这一行,根据你要实现的功能(比如wordcount)将它拆成一个个(key,value)
(wordcount的拆法就是,key=单词,value=1)
接着,hadoop会将所有的(key,value)汇总,它会将所有key相同的项合并在一起,而value就是一个list,从而形成了一个新的(key,values),然后将这个发送给reduce函数.
reduce(key,value)reduce函数同样有两个参数,一个是key,一个是value
通常这个value就是一个list,
reduce函数要实现的功能就是,针对其中一组(key,value),将其按照你要实现的功能,进行运算
(wordcount的做法 ,那么你的key将是一个单词,而value这个list的每一项都是1,只要计算一下有多少个1,那么就知道这个单词的频数是多少了.)
相关文章推荐
- (转)PHP 函数的实现原理及性能分析
- SpringMVC与Freemarker的集成以及多视图解析器配置
- 菜鸟学习python笔记
- C 链表
- maven设置中ERROR: JAVA_HOME is set to an invalid directory
- Struts2文件下载
- 浅谈工作中使用过的几种C++界面库
- 多个点击显示隐藏例子代码
- spring定时器
- RDIFramework.NET V2.9版本多语言的实现
- 如何在命令行运行java文件
- 初学c++之template <typename T>
- Java的内存溢出(OOM)
- c++模板学习
- C++ primer 箭头操作符重载心得体会
- JAVA基础——字符编码
- Java内部类
- Java多态:upcast和downcast
- Eclipse下安装Scala2.10.4插件
- Java Note - Controlling Execution