加入收藏 | 设为首页 | 会员中心 | 我要投稿 柳州站长网 (https://www.0772zz.cn/)- 基础存储、数据迁移、云安全、数据计算、数据湖!
当前位置: 首页 > 站长资讯 > 动态 > 正文

Python开发者不容错过7个VS Code扩展

发布时间:2021-01-27 13:22:37 所属栏目:动态 来源:互联网
导读:3.6.5 Combiner 合并 Combiner 是 MR 程序中 Mapper 跟 Reducer 之外的组件。 Combiner 是在每一个MapTask 所在节点运行,Reducer 是接受全部 Mapper 输出结果。 Combiner 属于局部汇总的意思,来减少网络传输。 Combiner 用的时候要注意不能影响最终业务逻

3.6.5 Combiner 合并

  • Combiner 是 MR 程序中 Mapper 跟 Reducer 之外的组件。
  • Combiner 是在每一个MapTask 所在节点运行,Reducer 是接受全部 Mapper 输出结果。
  • Combiner 属于局部汇总的意思,来减少网络传输。
  • Combiner 用的时候要注意不能影响最终业务逻辑!比如求平均值就不能用。求和就OK。

3.6.6 关于 MapReduce 排序

MapReduce框架最重要的操作就是排序,MapTask 跟 ReduceTask 都会根据key进行按照字典顺序进行快排。

MapTask 将缓冲区数据快排后写入到磁盘,然后磁盘文件会进行归并排序。

ReduceTask统一对内存跟磁盘所有数据进行归并排序。

3.6.7 ReduceJoin 跟 MapJoin

Reducejoin

思路:通过将关联条件作为Map 输出的 Key,将两表满足 Join条件的数据并携带数据源文件发送同一个ReduceTask,在Reduce端进行数据串联信息合并。

缺点:合并操作在Reduce端完成,Reduce 端处理压力太大,并且Reduce端易产生数据倾斜。

MapJoin

适用:适用于一张表十分小、一张表很大的场景。

思路:在 Map 端缓存多张表,提前处理业务逻辑,这样增加 Map 端业务,减少 Reduce 端数据的压力,尽可能的减少数据倾斜。

3.6.8 注意点

ReduceTask = 0 说明没有Reduce节点,输出文件个数和 Map 个数一样。

ReduceTask 默认= 1,所以结果是一个文件。

ReduceTask 的个数不是任意设置的,需跟集群性能还有结果需求而定。

逻辑处理 Mapper 时候可根据业务需求实现其中三个方法,map、setup、cleanup。

3.7 压缩

压缩是提高Hadoop运行效率的一种优化策略,通过在Mapper、Reducer运行过程的数据进行压缩来减少磁盘空间跟网络传输,最终实现提高MR运行速度。但需注意压缩也给CPU运算带来了负担。

压缩的基本原则:

运算密集型任务 ,少压缩。

IO密集型任务,多压缩。

 

(编辑:柳州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读