![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MapReduce
0918L
CRUD
展开
-
hadoop当中支持的压缩算法
文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输 前面hadoop的版本经过重新编译之后,可以看到hadoop已经支持所有的压缩格式了,剩下的问题就是该如何选择使用这些压缩格式来对MapReduce程序进行压缩 可以使用bin/hadoop checknative 来查看编译之后的hadoop支持的各种压缩,如果出现openssl为false,那么就在线安装一下依赖包 bin/ha...原创 2019-11-20 09:43:49 · 19906 阅读 · 2 评论 -
MapReduce的combiner
每一个 map 都可能会产生大量的本地输出,Combiner 的作用就是对 map 端的输出先做一次合并,以减少在 map 和 reduce 节点之间的数据传输量,以提高网络IO 性能,是 MapReduce 的一种优化手段之一。 combiner 是 MR 程序中 Mapper 和 Reducer 之外的一种组件 combiner 组件的父类就是 Reducer combiner 和 reduc...原创 2019-11-20 09:35:01 · 19537 阅读 · 1 评论 -
MapReduce当中的计数器
计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可辅助诊断系统故障。如果需要将日志信息传输到map 或reduce 任务, 更好的方法通常是看能否用一个计数器值来记录某一特定事件的发生。对于大型分布式作业而言,使用计数器更为方便。除了因为获取计数器值比输出日志更方便,还有根据计数器值统计特定事件的发生次数要比分析一堆日志文件容易得多。 hadoop内置计数器列表 ...原创 2019-11-20 09:30:35 · 20160 阅读 · 1 评论 -
MapReduce排序以及序列化
序列化(Serialization)是指把结构化对象转化为字节流。 反序列化(Deserialization)是序列化的逆过程。把字节流转为结构化对象。 当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流 反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化。 Java 的序列化(Serializable)是一个重量级序列化框架,一个对象被序列化后,会附带很多额外的信息(...原创 2019-11-20 09:20:38 · 19967 阅读 · 5 评论 -
MapReduce的分区与ReduceTask的数量
在MapReduce中,通过指定分区,会将同一个分区的数据发送到同一个reduce中,例如为了数据的统计,可以把一批类似的数据发 送到同一个reduce当中去,在同一个reduce中统计相同类型的数据,就可以实现类似数据的分区,统计等 直观的说就是相同类型的数据,送到一起去处理,在reduce当中默认分区只有1个。 MapReduce当中的分区类图 ...原创 2019-11-20 09:15:31 · 20099 阅读 · 1 评论 -
MapReduce编程初体验(WordCount)
需求:在给定的文本文件中统计输出每一个单词出现的总次数 Map类: package itcast.demo01; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; import java.io.IOExcep...原创 2019-11-20 08:55:39 · 20173 阅读 · 0 评论 -
MapReduce如何调优
Map的最终效果是什么样(如何让Map达到最优) Map端的最高效率是:尽量减少环形缓冲区flush的次数(减少磁盘IO 的使用次数) 如何能够减少环形缓冲区flush的次数: 1、加大环形缓冲区的内存 2、增大缓冲区阈值的大小 (考虑剩余的空间是不是够系统使用) 3、对输出的进行压缩(压缩-解压的过程会消耗CPU) Reduce端的最高效率是: 尽量减少环形缓冲区flush的次数 尽量将所有的数...原创 2019-11-19 08:52:25 · 20752 阅读 · 0 评论