0
点赞
收藏
分享

微信扫一扫

Hadoop——第三部份 Hadoop3.x之MapReduce

爪哇驿站 2022-01-13 阅读 58

第三部份 Hadoop3.x之MapReduce

一、MapReduce概述

1.1 概念

MapReduce是一个分布式运算程序的编程框架

1.2 优缺点

  1. 优点
  • 易于编程
    只关心业务逻辑,实现框架接口。
  • 高扩展
    动态增加服务器
  • 高空错
  • 海量计算
  1. 缺点
  • 不擅长实时计算 (Mysql)
  • 不擅长流式计算 (Sparkstreaming flink)
  • 不擅长DAG有向无环图计算(迭代) (Spark)

二、Hadoop序列化

  • 序列化和反序列化
    将内存中的信息固定下来以传输并加载到其它服务器内存中。

三、MapReduce框架原理

总流程
Input——InputFormat——Mapper——Shuffle——Reducer——OutputFormat——Output

  • Map阶段
    将计算任务下发给各个节点
  • Reduce阶段
    将各个节点计算的结果汇总

3.1 InputFormat数据输入

  1. 切片与MapTask并行度决定机制
  • Job人Map阶段并行度由客户端在提交Job时的切片数决定
  • 每一个Split切片分配一个MapTask并行实例处理
  • 默认切片大小=Block大小
  • 切片以文件为单位执行
  1. Format数据输入

3.2 MapReduce工作流程

3.3 Shuffle机制

  1. 分区
  2. 排序
  3. Combiner归并(可选)

3.4 OutputFormat数据输出

3.5 MapReduce工作机制

  1. MapTask工作机制
    五阶段:
    Read——Map——Collect——溢写——Merge

  2. ReduceTask工作机制
    三阶段:
    Copy——Sort——Reduce

3.6 数据清洗ETL

四、Hadoop数据压缩

方法压缩率压缩速度切片
Gzip一般不支持
Bzip2最高支持
Lzo一般支持
Snappy一般最快不支持
  1. Mapper输入前
  • 数据量<块大小,不需考虑切片,重点考虑速度
    优先Snappy>LZO
  • 数据量较大,考虑支持切片的
    LZO
  1. Mapper输出
  • 无需考虑切片,优先考虑速度
    Snappy>LZO
  1. Reducer输出
    跟据用途
  • 存储 主要考虑压缩率
    Bzip2>Gzip
  • 用于计算或使用
    同Mapper输入
举报

相关推荐

0 条评论