09. MapReduce概念+核心思想

MapReduce
分布式运算程序的编程框架
自己处理业务相关代码+自身的默认代码

  1. 优点:
    • 易于编程,只需关心业务逻辑
    • 良好扩展性:可动态增加服务器
    • 高容错性:可以把没完成的任务转移到其他节点
    • 适合海量数据计算(TB/PB)
  2. 缺点:
    • 不擅长实时计算 mysql
    • 不擅长流式计算 sparkstreaming flink
    • 不擅长DAG有向无环图计算 spark
  3. 核心思想

  4. 编程规范
    三部分:Mapper、Reducer和Driver
    • Mapper
    1. 用户自定义的Mapper要继承自己的父类
    2. Mapper的输入数据是KV对的形式
    3. Mapper中的业务逻辑写在map()方法中
    4. Mapper的输出数据是KV对的形式
    5. map()方法对每一个KV调用一次
    • Reducer
    1. 用户自定义的Reducer要继承自己的父类
    2. Reducer的输入数据类型对应Mapper的输出数据类型,也是KV
    3. Reducer中的业务逻辑写在reduce()方法中
    4. ReduceTask进程对每一组想用k的组调用一次reduce()方法
    • Driver
      相当于YARN集群的客户端,用于提交程序到YARN集群,提交的是封装了MR程序相关运行参数的job对象
posted @ 2021-12-15 15:58  yjyww  阅读(38)  评论(0编辑  收藏  举报