目录
1. MapRecude概述 2. MapReduce编程模型 3. MapReduce WordCount编程实例 4. MapReduce类型 5. MapReduce输入格式 6. MapReduce输出格式 7. COmbiner 8. Partitioner 9. RecordReader 10. Join的MapReduce实现 11. 排序的MapReduce实现 12. 二次排序的MapReduce实现 13. 合并小文件的MapReduce实现
-
MapRecude概述
1.mp是什么? 简化版并行计算的编程模型 2.mp涉及目标 分散任务,汇总结果 3.mp特点 1.易于编程,通过一些简单的接口就可以完成分布式程序 2.良好的扩展性,计算资源不满足的时候,增加机器 3.高容错性,一台服务器挂了,把上面的计算任务移到另外一个节点上 4.能对PB数据进行离线计算 4.mp不擅长的场景 1.实时计算;无法像mysql一样实时计算 2.流式计算;流式数据的计算都是动态的,而mp计算的资源都是静态的 3.DAG(有向图)计算;多个应用程序存在依赖关系,一个输出是另外一个输入,并不是不能做,二十每 次计算都会写入磁盘,会造成大量IO操作,降低使用性能
-
MapReduce编程模型
1.编程模型概述 1.mp由map()和reduce()两个阶段组成,用户只需要写入这两个函数,即可完成简单的分布式程序的设 计。 2.map()函数以keyValue对作为输入,产生另外一系列keyvalue作为输出写入磁盘。mp框架会自动将这 些中间数据按照key值进行聚集,key值相同的数据被同意给reduce函数处理。 3.reduce()函数以key及对应的value列表作为输入,经合并key相同的value值后,产生另一系列 keyvalue作为最终输入写入hdfs。 2.编程模型三部曲 1.Input:一系列k1/v1对 2.Map和Reduce:Map:(K1,V1)-->list(K2,V2),Reduce:(K2,list(V2))-->list(K3,V3) 3.OutPut一系列(K3,V3)对
-
MapReduce WordCount编程实例
1.WOrdCount实现涉及分析 1.mpa过程,并行读取文本,对读取的单词进行map操作,每个词都已<key,value(num)>形式生成 2.reduce操作是对map的结果进行排序,合并,最后得出词频 2.WordCount代码开发 1.输入数据实例化 3.WOrdCount代码说明 1. 4.WOrdCount提交到集群运行 1.将代码文件打包放到hadoop/lib目录下 2.将测试数据提价到hdfs中3. 3.提交mapreduce作业到集群运行 hadoop jar <mp代码路径> xxxx 4.查看作业输出结果
-
MapReduce类型
1.mapreduce类型概述 map输出和reduce输入一致 2.mp常用的设置 1.输入数据类型设置 2.map输出数据类型 3.reduce输出数据类型
-
MapReduce输入格式
1.mp处理的数据文件,一般存在hdfs中,格式可以是任意的。
-
MapReduce输出格式
-
COmbiner
1.减少mp的输出数值,从而减少网络宽带和reducer上的负载。可以理解为在每个单独节点做一次reduce。
-
Partitioner
1.Partitioner 如果要把最终结果按照组分到不同的文件中,就意味着map需要把不同组的数据放到不同的reducer中。 这种过程就叫做Partitioner 2.Partitioner案例 内部代码 3.提交作业到集群运行
-
RecordReader
1.RecordReader概述 1.RecordReader表示以怎样的方式从分片中读取一条记录,每读取一条记录都会调用RecordReader 类,RecordReader对应的LIneRecordReader是以每行的偏移量作为key,内容作为value,如果需 要key不是偏移量而是行号就需要自定义RecordReader 2.RecordReader实现案例
-
Join的MapReduce实现
1.概述 mp实现join比较繁琐,用的少,主要在hive,spark用,理解原理 2.mp Map端join的实现原理 1.Map端读取所有的文件,并在输出的内容里加上标示,代表数据是从哪个文件来的 2.在reduce处理函数中,按照标示对数据进行处理 3.然后根据key用join来求出结果直接输出
-
排序的MapReduce实现
1.需求 对输入文件中数据进行排序,输入文件中的每行美容均为一个数字,即一个数据。要求在输出中每行有两 个间隔的数字,其中第一个代表原始数据在原始数据中的位次,第二个代表原始数据 2.mp排序的实现原理
-
二次排序的MapReduce实现
1.概述 默认对key进行排序,有的时候还需要对value进行排序,这就是二次排序 2.mp实现原理
-
合并小文件的MapReduce实现
1.概述 hdfs对于处理单个大文件比处理多个小文件效率要高