一、MapReduce概述
1.定义
是分布式运算框架
MapReduce:用户处理业务相关代码+自身的默认代码
2.优势劣势
优点:
1).易于编程。用户只关心业务逻辑,实现框架的接口。
2).良好的扩展性。可以动态增加服务器,解决计算资源不够的问题。
3).高容错性:任何一台挂掉,可以将任务转移到其它节点。
4).适合海量数据计算(TB/PB)几千台服务器共同计算。
劣势:
1).不擅长实时计算。mysql
2).不擅长流式计算。SparkStream flink适合。
3).不擅长DAG有向无环图计算。spark
3.Mapreduce核心思想-WordCount案例
例如:统计其中每一个单词出现的总次数(查询结果:a-p 一个文件,q-z一个文件)
Map阶段:分阶段
Reduce阶段:统计阶段

MapReduce程序运行时有三类进程:
1)、MrAppMaster:负责整个程序的过程调度及状态协调。
2)、MapTask:负责Map阶段整个数据处理流程处理。
3)、ReduceTask:负责Reduce阶段的整个处理流程。
说这是一个任务,一个job,一个mr都是一个事情
二、序列化
1.常用序列化进程:
除了String类型变成Text,其他类型都在Java类型基础上加Writable.
|   Java类型  |   Hadoop Writable类型  | 
|   Boolean  |   BooleanWritable  | 
|   Byte  |   ByteWritable  | 
|   Int  |   IntWritable  | 
|   Float  |   FloatWritable  | 
|   Long  |   LongWritable  | 
|   Double  |   DoubleWritable  | 
|   String  |   Text  | 
|   Map  |   MapWritable  | 
|   Array  |   ArrayWritable  | 
|   Null  |   NullWritable  | 
三、核心框架原理
1.输入数据InputFormat
2.shuffle
3.输出数据OutputFormat
4.join
5.ETL
hadoop作为etl工具之一。
清理的过程只需要在Mapper程序进行,不需要运行Reduce程序。
6.总结
四、压缩
1、有哪些压缩算法
2.特点
3.在生产上怎么用
五、常见的问题及解决方案
82-125跳过去










