段智华
智华专注于GenAI/LLM大模型技术的研究,参与了7本书籍的写作,拥有5项申请发明专利,10多项软著,以及4篇IEEE国际会议论文。参与Gavin大咖主编,北京航空航天大学出版社2024年5月最新出版的2本图书著作:《Transformer&ChatGpt解密:原理、源码及案例》、《Transformer& Rasa 解密 原理、 源码及案例》,共撰写1996篇原创博客文章,涵盖Transformer、GPT-4、ChatGPT、Llama2/3、Langchain、Mistral、Mixtral、Rasa、AI机器学习、Spark大数据等主题。博客文章的总阅读量为323万次。
展开
-
第224讲:Spark Shuffle Pluggable框架ShuffleBlockManager解析
第224讲:Spark Shuffle Pluggable框架ShuffleBlockManager解析ShuffleBlockManager,1.6.0之后改成了ShuffleBlockResolver: 具体读取shuffle数据,是一个trait。trait ShuffleBlockResolver { type ShuffleId = Int /** * Retrieve原创 2017-05-02 06:53:09 · 491 阅读 · 0 评论 -
第36课:kaishi 彻底解密Spark 2.1.X中Sort Shuffle中Reducer端源码内幕
第36课:kaishi 彻底解密Spark 2.1.X中Sort Shuffle中Reducer端源码内幕本文根据家林大神系列课程编写 http://weibo.com/ilovepains 本课讲解Spark 2.1.X中Sort Shuffle中Reducer端的源码内幕,Spark是MapReduce思想的一种实现,相对于Hadoop的MapRedcue,Spark作业job根据算子的依赖关原创 2017-05-16 06:39:47 · 1028 阅读 · 0 评论 -
第32课:彻底解密Spark 2.1.X中Shuffle 下Task视角内存分配管理
第32课:彻底解密Spark 2.1.X中Shuffle 下Task视角内存分配管理Spark 2.1.X内存管理包含2种类型:统一内存管理 UnifiedMemoryManager、静态内存StaticMemoryManager。这两种内存的管理方式最终要落实到Task的运行。我们先从源码角度对Spark内存管理进行回顾,从Spark Task的视角解析Task运行内存管理源码。在Spark 2原创 2017-05-09 07:27:03 · 1381 阅读 · 0 评论 -
第35课:彻底解密Spark 2.1.X中Sort Shuffle 中TimSort排序源码具体实现
第35课:彻底解密Spark 2.1.X中Sort Shuffle 中TimSort排序源码具体实现Spark 2.1.X中Sort Shuffle 中TimSort排序: 1,从Spark 1.6.x开始,默认核心的Shuffle是Sort Shuffle,同学们可能有个印象Sort Shuffle要完成数据排序的,但这个印象是有问题的,例如写个最简单的WordCount程序,原创 2017-05-18 07:27:38 · 1370 阅读 · 0 评论 -
第21课:Spark性能调优之系统资源使用原理和调优最佳实践
第20课:大数据性能调优的本质和Spark性能调优要点分析我们从Spark资源的角度讲解性能调优的原因:无论是算子调优、Shuffle、数据倾斜等实质上都涉及到资源的使用。我们从Spark官网(http://spark.apache.org/docs/latest/cluster-overview.html)看一下Spark运行架构图: 图原创 2017-05-19 06:55:03 · 714 阅读 · 0 评论 -
第20课:大数据性能调优的本质和Spark性能调优要点分析
第20课:大数据性能调优的本质和Spark性能调优要点分析我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让在进入性能调优之前都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优。我们先看一下Spark官网的性能优化指南(http://spark.apache.org/docs/latest/tu原创 2017-05-19 07:33:24 · 1043 阅读 · 0 评论 -
第22课:Spark性能调优之使用更高性能算子及其源码剖析
第22课:Spark性能调优之使用更高性能算子及其源码剖析Spark性能调优之使用更高性能算子的重要性在于同样的情况下,如果使用更高性能的算子,从算子级别给我们带来更高的效率。Spark现在主推的是DataSet这个API接口,越来越多的算子可以基于DataSet去做,DataSet基于天然自带的优化引擎,理论上讲比RDD的性能更高,DataSet弱点是无法自定义很多功能。平时使用来讲,使用的最基原创 2017-05-19 22:07:14 · 1088 阅读 · 0 评论 -
第23课:Spark旧版本中性能调优之HashShuffle剖析及调优(内含大数据Shuffle本质及其思考)
第23课:Spark旧版本中性能调优之HashShuffle剖析及调优(内含大数据Shuffle本质及其思考)大数据是分布式的,分布式绝大情况下涉及Shuffle。Spark内核引擎是树根,Spark Shuffle就相对于整个运行的树干,树枝就相当于在Mapper端怎么表现,在Reducer端怎么表现,内部的JVM又是怎么做。HashShuffle虽然在Spark新版本中已经不用了,HashSh原创 2017-05-20 08:16:42 · 583 阅读 · 0 评论 -
第24课:彻底解密Shuffle是如何成为Spark性能杀手的及调优点思考
第24课:彻底解密Shuffle是如何成为Spark性能杀手的及调优点思考人们对于Spark的第一印象是往往是Spark基于内存进行计算。但从实质上讲,Spark基于内存进行计算,也可以基于磁盘进行计算,或者基于第三方的存储空间进行计算。背后两层含义:1,Spark架构框架的实现模式是倾向于在内存中计算数据的,可以从Storage、算法、库的不同方式看出来。2,我们要计算数据的时候,数据就在内存中原创 2017-05-20 16:34:38 · 685 阅读 · 0 评论 -
第25课 Spark Hash Shuffle源码解读与剖析
第25课:14 Spark Hash Shuffle源码解读与剖析Spark 2.1x 现在的版本已经没有Hash Shuffle的方式,那为什么我们还要讲解HashShuffle源码的内容呢?原因有3点:1,在现在的实际生产环境下,很多人在用Spark1.5.x,实际在使用Hash Shuffle的方式。2,Hash Shuffle的方式是后续Sort Shuffle的基础。3,在实际生产环境下原创 2017-05-21 07:49:27 · 1336 阅读 · 0 评论 -
第139课: Spark面试经典系列之数据倾斜解决之对于两个RDD数据量都很大且倾斜的Key特别多如何解决?
第139课: Spark面试经典系列之数据倾斜解决之对于两个RDD数据量都很大且倾斜的Key特别多如何解决?如果两个RDD的数据量都特别大而且倾斜的Key特别多如何解决:数据量特别大就无法把其中的一个RDD广播出去;如果倾斜的Key值特别多,就无法采用分而治之等方法。例如微信上有海量的数据、淘宝上有海量的数据,如果进行全网扫描就可能遇到这种情况,因为热点特别多,有成千上万个热点。原创 2017-07-10 21:22:47 · 1389 阅读 · 0 评论 -
第217讲:Spark Shuffle中HashShuffleWriter工作机制和源码详解
第217讲:Spark Shuffle中HashShuffleWriter工作机制和源码详解1,获取shuffleManager Spark Stage里面除了最后一个stage,前面都是map级别,图中Stage2里面的任务是ShuffleMapTask,而ShuffleMapTask的runTask方法要从SparkEnv里面找shuffleManager,获取shuffleManager。原创 2017-04-26 20:21:58 · 1118 阅读 · 0 评论 -
第31课:彻底解密Spark 2.1.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory
第31课:彻底解密Spark 2.1.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory 大数据的事情只需关注2个平台:spark,tensorFlow(图像,深度学习)内存管理MemoryManager属于spark框架内部的, 包含2种类型:1,统一内存管理 UnifiedMemoryManager 属于框架内部private[memory]2,静态内存原创 2017-05-07 20:30:47 · 1441 阅读 · 0 评论 -
第30课:彻底解密Spark 2.1.X中Shuffle中JVM Unified Memory内幕详情:Spark Unified Memory的运行原理和机制是什么?Spark JVM最小配置是什么
第30课:彻底解密Spark 2.1.X中Shuffle中JVM Unified Memory内幕详情:Spark Unified Memory的运行原理和机制是什么?Spark JVM最小配置是什么?用户空间什么时候会出现OOM?Spark中的Broadcast到底是存储在什么空间的?ShuffleMapTask的使用的数据到底在什么地方?Spark Unified Memory的运行原理和机制原创 2017-05-07 06:51:32 · 1362 阅读 · 0 评论 -
第221讲:Spark Shuffle Pluggable框架ShuffleManager解析
第221讲:Spark Shuffle Pluggable框架ShuffleManager解析你要做shuffle,最核心的是ShuffleManager!ShuffleManager:接口级别的,用于shuffle 洗牌系统的可插拔接口。基于spark.shuffle.manager的配置,在sparkenv创建shufflemanager,运行在driver和每一个executor上。driv原创 2017-04-30 21:35:45 · 704 阅读 · 0 评论 -
第222讲:Spark Shuffle Pluggable框架ShuffleWriter解析
第222讲:Spark Shuffle Pluggable框架ShuffleWriter解析ShuffleWriter是ShuffleMapTask将shuffle数据写入本地的接口。不同的shuffle有不同的实现。 在ShuffleMapTask内部中获取shuffleWtriter实例,将数据记录写入shuffle系统 private[spark] abstract class Shuff原创 2017-05-01 07:17:11 · 490 阅读 · 0 评论 -
第223讲:Spark Shuffle Pluggable框架ShuffleReader解析
第223讲:Spark Shuffle Pluggable框架ShuffleReader解析ShuffleReader:具体实现Stage在读取上一个Stage结果的接口。在reduce任务中,读取mappers中的聚合数据。从上一个shuffleMapTask中读取想要的数据,读取的内容是Iterator,具体的读可以看它的子类。private[spark] trait ShuffleReade原创 2017-05-01 21:21:55 · 873 阅读 · 0 评论 -
第33课:彻底解密Spark 2.1.X中Shuffle 中Mapper端的源码实现
第33课:彻底解密Spark 2.1.X中Shuffle 中Mapper端的源码实现本文根据家林大神系列课程编写 http://weibo.com/ilovepainsSpark是MapReduce思想的实现之一,在一个作业中,会把不同的计算按照不同的依赖关系分成不同的Stage,前面的Stage是后面Stage的Mapper,构建的一个有向无环图。我们研究Shuffle,实际上要研究Mapper原创 2017-05-10 07:26:46 · 794 阅读 · 0 评论 -
第225讲:Spark Shuffle Pluggable框架SortShuffle解析以及创建源码详解
第225讲:Spark Shuffle Pluggable框架SortShuffle解析以及创建源码详解引入SortShuffle的方式是为了解决问题,解决什么问题呢,这个问题就是Spark无法应对大规模集群和大规模任务的问题。SparkEnv创建 val shortShuffleMgrNames = Map( "sort" -> classOf[org.apache.spark原创 2017-05-02 20:37:15 · 630 阅读 · 0 评论 -
第226讲:Spark Shuffle Pluggable框架SortShuffle具体实现解析
第226讲:Spark Shuffle Pluggable框架SortShuffle具体实现解析 SortShuffle在进行ShuffleMapTask的时候,按照Key(具体的处理元素的key)相应的PartitionID进行sort,注意这个进行sort,很消耗性能,为了避免Hadoop Map reduce sort 的弊端,Spark的处理是对于属于同一个Partition的Key不进原创 2017-05-03 06:45:55 · 594 阅读 · 0 评论 -
第26课:电光石火间从根本上理解Spark中Sort-Based Shuffle产生的内幕及其tungsten-sort 背景解密
第26课:电光石火间从根本上理解Spark中Sort-Based Shuffle产生的内幕及其tungsten-sort 背景解密在历史的发展中,为什么 Spark 最终还是选择放弃了 HashShuffle 而使用了 Sorted-Based Shuffle,而且作为后起之秀的 Tungsten-based Shuffle 它到底在什么样的背景下产生的。Tungsten-Sort Shuffle原创 2017-05-04 06:58:22 · 1058 阅读 · 0 评论 -
第27课:彻底解密Spark Shuffle令人费解的6大经典问题(课程内容全球独家)
第27课:彻底解密Spark Shuffle令人费解的6大经典问题(课程内容全球独家)Shuffle的第一大问题:什么时候进行shuffle的fetch操作?Shuffle具体在什么时候开始运行(是在一边Mapper的map操作同时进行reduce端的shuffle的reduce操作吗)?错误的观点:Spark是一遍Mapper一遍Shuffle,而Hadoop的MapReduce...原创 2017-05-04 20:57:59 · 1396 阅读 · 1 评论 -
第34课:彻底解密Spark 2.1.X中Shuffle 中SortShuffleWriter排序源码内幕解密
第34课:彻底解密Spark 2.1.X中Shuffle 中SortShuffleWriter排序源码内幕解密本文根据家林大神系列课程编写 http://weibo.com/ilovepainsSpark Shuffle一个至关重要的内容,我们的SortShuffle内部到底怎么排序的?这里的排序是从整个框架的角度讲,SortShuffle在不考虑业务排序的情况下是怎么进行排序的?SortShuf原创 2017-05-11 07:26:17 · 1381 阅读 · 0 评论 -
第148讲:Spark RDD中Transformation的combineByKey、reduceByKey详解
第148讲:Spark RDD中Transformation的combineByKey、reduceByKey详解我们看一下PairRDDFunctions.scala的reduceByKey:类似于Hadoop中combiner,reduceByKey在每一个mapper进行本地合并,合并以后才把结果发送给reduce。他调用的其实就是combineByKey。/** * Merge the原创 2017-05-06 08:54:31 · 1532 阅读 · 0 评论 -
第28课:彻底解密Spark Sort-Based Shuffle排序具体实现内幕和源码详解
第28课:彻底解密Spark Sort-Based Shuffle排序具体实现内幕和源码详解本文根据家林大神系列课程编写http://weibo.com/ilovepains为什么讲解Sorted-Based shuffle?2方面的原因:一,可能有些朋友看到Sorted-Based Shuffle的时候,会有一个误解,认为Spark基于Sorted-Based Shuffle 它产出...原创 2017-05-05 06:56:22 · 5189 阅读 · 0 评论 -
第29课:彻底解密Spark 1.6.X以前Shuffle中JVM内存使用及配置内幕详情:Spark到底能够缓存多少数据、Shuffle到底占用了多少数据、磁盘的数据远远比内存小却还是报告内存不足?
第29课:彻底解密Spark 1.6.X以前Shuffle中JVM内存使用及配置内幕详情:Spark到底能够缓存多少数据、Shuffle到底占用了多少数据、磁盘的数据远远比内存小却还是报告内存不足?1 JVM内存使用架构剖析2 Spark集群在1.6.x以前中JVM到底可以缓存多少数据?3 spark集群在1.6.x以前中shuffle JVM到底缓存多少数据?4 spark on yarn实际计原创 2017-05-05 21:30:53 · 1454 阅读 · 0 评论 -
Spark集群中Mapper端、Reducer端内存调优
第23章Spark集群中Mapper端、Reducer端内存调优本章主要讲解如下内容:l Spark集群中Mapper端内存调优最佳实践;l Spark集群中Reducer端内存调优最佳实践。22 23 23.1 Mapper端内存调优本节讲解Spark集群中Mapper端内存使用详解以及性能调优最佳实践。23.1.1 Spark集群中Mapper端内存使用详解Spark原创 2017-08-20 08:09:35 · 1818 阅读 · 0 评论