|NO.Z.00037|——————————|BigDataEnd|——|Hadoop&Spark.V11|------------------------------------------|Spa
2022/4/12 14:12:40
本文主要是介绍|NO.Z.00037|——————————|BigDataEnd|——|Hadoop&Spark.V11|------------------------------------------|Spa,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
[BigDataHadoop:Hadoop&Spark.V11] [BigDataHadoop.Spark内存级快速计算引擎][|章节三|Hadoop|spark|sparkcore:RDD编程高阶&spark原理初探&shuffle原理|]
一、Shuffle原理
### --- shuffle原理 ~~~ Shuffle的本意是洗牌,目的是为了把牌弄乱。 ~~~ Spark、Hadoop中的shuffle可不是为了把数据弄乱, ~~~ 而是为了将随机排列的数据转换成具有一定规则的数据。 ~~~ Shuffle是MapReduce计算框架中的一个特殊的阶段,介于Map 和 Reduce 之间。 ~~~ 当Map的输出结果要被Reduce使用时,输出结果需要按key排列, ~~~ 并且分发到Reducer上去,这个过程就是shuffle。 ~~~ shuffle涉及到了本地磁盘(非hdfs)的读写和网络的传输, ~~~ 大多数Spark作业的性能主要就是消耗在了shuffle环节。 ~~~ 因此shuffle性能的高低直接影响到了整个程序的运行效率
### --- 在Spark Shuffle的实现上,经历了Hash、Sort、Tungsten-Sort(堆外内存)三阶段: ~~~ Spark 0.8及以前 Hash Based Shuffle ~~~ Spark 0.8.1 为Hash Based Shuffle引入File Consolidation机制 ~~~ Spark 0.9 引入ExternalAppendOnlyMap ~~~ Spark 1.1 引入Sort Based Shuffle,但默认仍为Hash Based Shuffle ~~~ Spark 1.2 默认的Shuffle方式改为Sort Based Shuffle ~~~ Spark 1.4 引入Tungsten-Sort Based Shuffle ~~~ Spark 1.6 Tungsten-sort并入Sort Based Shuffle ~~~ Spark 2.0 Hash Based Shuffle退出历史舞台
### --- 简单的说: ~~~ Spark 1.1 以前是Hash Shuffle ~~~ Spark 1.1 引入了Sort Shuffle ~~~ Spark 1.6 将Tungsten-sort并入Sort Shuffle ~~~ Spark 2.0 Hash Shuffle退出历史舞台二、shuffle原理三、Hash Base Shuffle
### --- Hash Base Shuffle V1 ~~~ 每个Shuffle Map Task需要为每个下游的Task创建一个单独的文件 ~~~ Shuffle过程中会生成海量的小文件。同时打开过多文件、低效的随机IO
### --- Hash Base Shuffle V2 ~~~ Hash Base Shuffle V2 核心思想: ~~~ 允许不同的task复用同一批磁盘文件,有效将多个task的磁盘文件进行一定程度上的合并, ~~~ 从而大幅度减少磁盘文件的数量,进而提升shuffle write的性能。 ~~~ 一定程度上解决了Hash V1中的问题,但不彻底。 ~~~ Hash Shuffle 规避了排序,提高了性能; ~~~ 总的来说在Hash Shuffle过程中生成海量的小文件(Hash Base Shuffle V2 ~~~ 生成海量小文件的问题得到了一定程度的缓解)。
### --- Sort Base Shuffle ~~~ Sort Base Shuffle大大减少了shuffle过程中产生的文件数,提高Shuffle的效率; ~~~ Spark Shuffle 与 Hadoop Shuffle 从目的、意义、功能上看是类似的,实现(细节)上有区别。
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
来自为知笔记(Wiz)
这篇关于|NO.Z.00037|——————————|BigDataEnd|——|Hadoop&Spark.V11|------------------------------------------|Spa的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-05-13Windows下hadoop环境搭建之NameNode启动报错
- 2023-04-14hadoop伪分布式集群的安装(不是单机版)
- 2022-12-05Hadoop生态系统—数据仓库Hive的安装
- 2022-11-02Win10搭建Hadoop环境
- 2022-10-19Hadoop生态系统(数据仓库Hive的安装)
- 2022-10-03Hadoop、storm和Spark Streaming简单介绍
- 2022-10-03胖虎的Hadoop笔记——Hadoop的伪分布式部署
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-09Ubuntu下安装伪分布式HADOOP遇到的一些问题