概述

mapReduce是hadoop中的分布式计算框架
TaskTracker就是NodeManager
JobTacker就是ResourceManager

hadoop之mapReduce
.
.

序列化

要求数据能被序列化,默认采用avro,mapreduce对avro做了封装,有writable接口
.
.

分区

不设置默认一个分区,编号从0开始
分区数决定reduce的数量
.
.

排序

继承Comparable接口或者WritableComparable接口
.
.

combiner - 合并

job.setCombinerClass(XXXX.class)
combiner在不改变reduce的结果前提下减少其计算量
求和这些可以用combiner,求平均值不行
.
.

数据本地化策略

  1. split和block的大小保持一致
  2. TrackTask和datanode部署在同一节点上
    将split的map任务直接在其节点上运行,减少网络带宽的占用
    .
    .

Job流程

hadoop之mapReduce
.

.

数据倾斜

map 多源输入,文件大小不均,不可切 不可处理
reduce 大小表联立 ,二阶段聚合

二阶段聚合
先将数据随机分区,再按业务要求操作聚合
hadoop之mapReduce

小文件

小文件会造成大量元数据,内存占用,降低查询效率
小文件会造成大量切片,产生大量线程,提高瞬间并发量
合并小文件,打包工具将多个小文件打包成一个jar包

相关文章:

  • 2022-12-23
  • 2021-10-08
  • 2021-04-26
猜你喜欢
  • 2022-01-02
  • 2021-09-18
  • 2021-09-14
  • 2021-06-30
相关资源
相似解决方案