MapReduce运行模式
集群运行模式
1.将mapReduce程序提交给yarn集群,分发到很多节点上并发执行
2.处理的数据和输出结果应该位于HDFS文件系统
3.提交集群的实现步骤:将程序打成jar包,并上传,然后在集群上用hadoop命令启动
本地运行模式
1.MapReduce程序是在本地以单进程的形式运行
2.处理的数据及输出结果在本地文件系统
即在TextputFormat的时候,可以指定是hdfs路径还是Hdfs路径压缩上传
MapReduce分区
分区概述
在mapreduce中,通过我们指定分区,会将同一个分区的数据发送到同一个Reduce当中进行处理
MapReduce中的计数器
计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可以辅助诊断系统故障。如果需要将日志信息输出到map或reduce任务,更好的方法通常是看能否用一个计数器值来记录某一特定时间的发生。对于大型分布式作业而言,使用计数器更为方便。除了因为获取计数器值比输出日志更方便,还有根据计数器值统计特定事件发生次数要比分析一堆日志文件容易得多。
MapReduce排序和序列化
序列化是指把结构化对象转为字节流
反序列化时序列化的逆过程,把字节流转为结构化对象,当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化
java的序列化是一个重量级序列化框架,一个对象被序列化后,会附带很多信息,就显得臃肿,而hadoop自己开发了自己的一套序列化机制,需要什么属性就传什么,大大减少了网络传输的开销
writable时hadoop的序列格式化,hadoop定义了这样一