大致内容
定义:
MapReduce 是一个分布式运算程序的编程框架,是用户开发“基于 Hadoop 的数据分析应用”的核心框架。
MapReduce:自己处理业务相关代码+自身的默认代码
优点:
1.易于编程。用户只关心业务逻辑和实现框架的接口。
2.良好的扩展性。可动态增加服务器,解决计算资源不够问题。
3.高容错性。任何一台机器挂掉,可以将任务转移到其他节点。
4.适合海量数据运算(TB/PB),几千台服务器共同计算。
缺点:
1.不擅长实时计算,MySQL更擅长(ms级)。通常处理的是分钟级别的,有时还可能要算几天。
2.不擅长流式计算。Sparkstreaming flink适合
3.不擅长DAG有向无环图计算。
MapReduce编程规范
Mapper阶段:
1.用户自定义的Mapper要继承自己的父类
2.Mapper的输入数据时KV对的形式(KV的类型可自定义)
3.Mapper中的业务逻辑写在map()方法中
4.Mapper的输出数据是KV对的形式(KV的类型可自定义)
5.map()方法(MapTask进程)对每一个<K,V>调用一次