![img_31c02313cd1c68e85e3ef322b328bd0f.png](https://i-blog.csdnimg.cn/blog_migrate/bd903089e5e4a8368d4cf72a677f1179.png)
目录
1 MapReduce概述
![img_21772479c37477f2663b37afa25ba195.png](https://i-blog.csdnimg.cn/blog_migrate/3719419b3e1876369275741026fe8155.png)
2 MapReduce编程模型之通过wordcount词频统计分析案例入门
![img_5d2daa00b3a473373efecad040fdd45b.png](https://i-blog.csdnimg.cn/blog_migrate/093c71850ad122eab094ccfb27162969.png)
MapReduce执行流程
![img_9ae90c753f87d07e3b7fdc241edc0aa8.png](https://i-blog.csdnimg.cn/blog_migrate/2795ebcbaf66f39ba8b1d2a3c2fde1a9.png)
![img_cbb97b46bd33f93053c7c69c822efaeb.png](https://i-blog.csdnimg.cn/blog_migrate/4717342b6086af14b46eede2e7e5608f.png)
![img_dc7e7cb5609d1a0f358884ed626850ca.png](https://i-blog.csdnimg.cn/blog_migrate/71e1648cfe8b2cae9cce899396c7c022.png)
-
InputFormat
- OutputFormat
OutputFormt接口决定了在哪里以及怎样持久化作业结果。Hadoop为不同类型的格式提供了一系列的类和接口,实现自定义操作只要继承其中的某个类或接口即可。你可能已经熟悉了默认的OutputFormat,也就是TextOutputFormat,它是一种以行分隔,包含制表符界定的键值对的文本文件格式。尽管如此,对多数类型的数据而言,如再常见不过的数字,文本序列化会浪费一些空间,由此带来的结果是运行时间更长且资源消耗更多。为了避免文本文件的弊端,Hadoop提供了SequenceFileOutputformat,它将对象表示成二进制形式而不再是文本文件,并将结果进行压缩。
3 MapReduce核心概念
![img_ebf4e000b41168f64408e8cd2c82785d.png](https://i-blog.csdnimg.cn/blog_migrate/848113c50406903da219398ddae7128f.png)
![img_012fc39139036b05a3b472a52bdd01f5.png](https://i-blog.csdnimg.cn/blog_migrate/941a7f8b2e80dd6802db75dc5645436a.png)
3.1 Split
![img_88e2b0cb4862ac7f00a702a40b900757.png](https://i-blog.csdnimg.cn/blog_migrate/86055536488772fec6eb9c04b394fb15.png)
3.2 InputFormat
4 MapReduce 1.x 架构
![img_2e9c8bad53ff5768c8035383d59c7a6b.png](https://i-blog.csdnimg.cn/blog_migrate/61b4eec4480184437f7fd4bdc9aa01be.png)
![img_4b43d8f44554c1f661ed6b853cf8ff76.png](https://i-blog.csdnimg.cn/blog_migrate/535404b6a22fcbc948796b63995b9e7d.png)
![img_c99f71c1d8960304ce729d90dc1af0eb.png](https://i-blog.csdnimg.cn/blog_migrate/422ddc6a07ba8a2ae425d237666b2111.png)
![img_65957ec055cca28dd458567b69bd6d60.png](https://i-blog.csdnimg.cn/blog_migrate/ced6088f02a92e4472d2a02149c9bfde.png)
![img_f79e62c52e5c243ce783920e55f4b37b.png](https://i-blog.csdnimg.cn/blog_migrate/598e722dfab6f8498f44616e6e6cff4a.png)
5 MapReduce 2.x 架构
![img_2c490e0c50c9170c2c0f1d74e33d116e.png](https://i-blog.csdnimg.cn/blog_migrate/fe4b8272d26ba5934496d1b9b73c41df.png)
6 Java 实现 wordCount
![img_5127dd9a55a2f5507bc2151c4d5665d3.png](https://i-blog.csdnimg.cn/blog_migrate/ff1ca2021f30db4e9df73f4c4bb0c093.png)
![img_41227dd66b0d83cfdd106c4ea0278434.png](https://i-blog.csdnimg.cn/blog_migrate/8d3e70ef0defe9f051f2d0284be46c59.png)
clean package
![img_3fd46fea456df3397e9cf6e21a1c29e0.png](https://i-blog.csdnimg.cn/blog_migrate/fa2d55523dd2f43bc1c297be7fd8760e.png)
上传到Hadoop服务器
![img_ceec34ba2cc18cfc821cff9c4e715c90.png](https://i-blog.csdnimg.cn/blog_migrate/3e8dbf8cb77a1ef4ddfc514ed703267d.png)
全路径没有问题
![img_ce05f034248354a076e68ac4d0092471.png](https://i-blog.csdnimg.cn/blog_migrate/6d0a42cfc505110107c3e2bb6c1e1a73.png)
7 重构
![img_cfcd5a21a7c56e8b0d2c8fec67246cd1.png](https://i-blog.csdnimg.cn/blog_migrate/9c1e83154dc4fe00aa2d48b50e2afe0e.png)
8 Combiner编程
![img_c0c578f8d99ecda4828992c076f9af3c.png](https://i-blog.csdnimg.cn/blog_migrate/e1e29aa4e1845227026038df747fcd53.png)
9 Partitoner
![img_f5d970db39fa491d2ccc0c49b2be80c8.png](https://i-blog.csdnimg.cn/blog_migrate/7735d76954d308809550598073a6d20e.png)
![img_34ae74cbc9211497f3ca07ff881823e5.png](https://i-blog.csdnimg.cn/blog_migrate/bfc7e260da9078d0d2a115f1d8292ac1.png)