Spark精讲
文章平均质量分 84
话数Science
大数据工程师
展开
-
【Spark精讲】Spark on Hive性能优化
【Spark精讲】Spark on Hive性能优化第一章1.1 集群配置概述1.2 集群规划概述第二章 Yarn配置2.1 Yarn配置说明yarn.nodemanager.resource.memory-mbyarn.nodemanager.resource.cpu-vcoresyarn.scheduler.maximum-allocation-mbyarn.scheduler.minimum-allocation-mb第三章 Spark的配置说明原创 2024-01-04 21:05:39 · 1822 阅读 · 0 评论 -
【Spark精讲】性能优化:并行度
1.控制reduce个数的方式与参数1.1.首先可以通过参数直接控制最终reduce的个数,使用参数mapred.reduce.tasksmapred.reduce.tasks=-1 --官方默认值-1,表示不人为设置reduce的个数,实际这种方式用的也少。1.2.在hive中如果不指定reduce个数的情况下,Hive会猜测确定一个reduce个数,基于以下两个设定。原创 2024-01-04 21:03:50 · 1263 阅读 · 0 评论 -
【Spark精讲】RDD共享变量:广播变量与累加器
在Spark中,提供了两种类型的共享变量:广播变量 (broadcast variable)与累加器 (accumulator)原创 2024-01-03 19:40:55 · 494 阅读 · 0 评论 -
【Spark精讲】RDD缓存源码分析
RDD调用cache或persist之后,会指定RDD的缓存级别,但只是在成员变量中记录了RDD的存储级别,并未真正地对RDD进行缓存。只有当RDD计算的时候才会对RDD进行缓存。在executor端调用SparkEnv.get.blockManager.getOrElseUpdate()方法,继续看 getOrCompute方法:这里可以看到blockId的生成规则,可以确定。再看BlockManager中的getOrElseUpdate方法。调用的iterator方法。以HadoopRDD为例。原创 2024-01-03 17:59:39 · 658 阅读 · 0 评论 -
【Spark精讲】SparkSQL Join选择逻辑
如果是等值join,就先看join hints,顺序如下broadcast hint:join类型支持的话选择broadcast hash join,如果join的两边都有broadcast hint,选择小的(基于统计)一方去广播sort merge hint:如果join的key是可排序的,选择sort merge joinshuffle hash hint:join类型支持的话选择shuffle hash joinshuffle replicate NL hint:如果是inner原创 2024-01-03 11:50:51 · 1337 阅读 · 0 评论 -
【Spark精讲】SparkSQL的RBO与CBO
Spark SQL的核心是Catalyst查询编译器。SQL优化器:RBO、CBO基于规则的优化器(Rule-Based Optimization,RBO)基于代价的优化器(Cost-Based Optimization,CBO)Outer 类型 Join 中的谓词下推通过 "spark.sql.cbo.enabled" 来开启,默认是 false。配置开启 CBO 后,CBO 优化器可以基于表和列的统计信息,进行一系列的估算,最终选择出最优的查询计划。比如:Build 侧选择、优化 Join原创 2024-01-02 20:43:04 · 1673 阅读 · 0 评论 -
【Spark精讲】记一个SparkSQL引擎层面的优化:SortMergeJoinExec
SortMergeJoin的实现方式并不用将一侧的数据全部加载后进行Join操作,其前提条件是需要在Join操作前将数据排序,为了让两条记录链接到一起,需要将具有相同Key记录分发到同一个分区,因此一般会进行一次Shuffle操作(即物理执行计划中的Exchange节点),根据Key分区,将连接到一起的记录分发到同一个分区内,这样在后续的Shuffle阶段就可以将两个表中具有相同Key记录分到同一个分区处理.",不同表的角色在Spark SQL中会通过一定的策略进行设定,通常来讲,系统会。原创 2024-01-02 19:11:23 · 821 阅读 · 0 评论 -
【大数据面试知识点】Spark的DAGScheduler
先看一下DAGScheduler的注释,可以看到DAGScheduler除了Stage和Task的划分外,还做了缓存的跟踪和首选运行位置的计算。DAGScheduler的运行时机DAGScheduler运行时机:Driver端初始化SparkContext时。DAGScheduler是在整个Spark Application的入口即 SparkContext中声明并实例化的。在实例化DAGScheduler之前,巳经实例化了SchedulerBackend和底层调度器 TaskScheduler。原创 2024-01-01 17:19:38 · 1316 阅读 · 0 评论 -
【Spark精讲】一文搞懂Spark分区器Partitioner
但是需要注意的是,由于JAVA中数组的hashCode是基于数组对象本身的,不是基于数组内容的,所以如果RDD的key是数组类型,那么可能导致数据内容一致的数据key没法分配到同一个RDD分区中,这个时候最好自定义数据分区器,采用数组内容进行分区或者将数组的内容转换为集合。该分区器的实现方式主要是通过两个步骤来实现的,第一步:先重整个RDD中抽取出样本数据,将样本数据排序,计算出每个分区的最大key值,形成一个Array[KEY]类型的数组变量rangeBounds;原创 2023-12-31 23:59:54 · 1186 阅读 · 0 评论 -
【Spark精讲】一文搞懂Spark钨丝Tungsten
【Spark精讲】一文搞懂Spark钨丝Tungsten、内存管理机制、缓存敏感计算( Cache-aware computation)、动态代码生成( Code generation)原创 2023-12-31 12:07:16 · 1161 阅读 · 0 评论 -
【Spark精讲】一文讲透SparkSQL聚合过程以及UDAF开发
【Spark精讲】一文讲透SparkSQL聚合过程以及UDAF开发:SparkSQL聚合过程、PARTIAL1、PARTIAL2、FINAL、COMPLETE原创 2023-12-30 11:17:05 · 1579 阅读 · 0 评论 -
【Spark精讲】一文讲透SparkSQL物理执行计划
【Spark精讲】一文讲透SparkSQL物理执行计划,SparkPlan,LeafExecNode类型,BinaryExecNode类型原创 2023-12-29 18:20:01 · 2058 阅读 · 0 评论 -
【Spark精讲】一文讲透SparkSQL执行过程
【Spark精讲】一文讲透SparkSQL执行过程,未解析的逻辑算子树,解析后的逻辑算子树,优化后的逻辑算子树,物理算子树,QueryPlan、LogicalPlan,SparkPlan,SparkSqlParser、AstBuilder、Analyzer、Optimizer原创 2023-12-29 16:00:17 · 1601 阅读 · 0 评论 -
【Spark精讲】一文讲透Spark RDD
一文讲透Spark RDD,DAG,Checkpoint,RDD五大特性:分区、依赖、计算函数、分区器、首选运行位置原创 2023-12-28 16:39:37 · 1319 阅读 · 0 评论 -
【Spark精讲】一文讲透Spark宽窄依赖的区别
一文讲透Spark宽窄依赖的区别,NarrowDependency,RangeDependency,ShuffleDependency,groupByKey,reduceByKey,cartesian,cogroup,join原创 2023-12-28 15:58:18 · 1038 阅读 · 0 评论 -
【Spark精讲】Spark五种JOIN策略
Spark JOIN详解,Spark五种JOIN策略,Shuffle Hash Join,Broadcast Hash Join,Sort Merge Join,Cartesian Join,Broadcast Nested Loop Join原创 2023-12-16 17:26:17 · 4494 阅读 · 0 评论 -
【Spark精讲】Spark RDD弹性体现在哪些方面?
Spark RDD弹性体现在哪些方面?RDD的Partition和Partitioner是弹性的基础,分区的动态可调是弹性的体现,容错不属于弹性,主从也不属于RDD层面的弹性原创 2023-12-15 17:59:47 · 793 阅读 · 0 评论 -
【Spark精讲】Spark与MapReduce对比
Spark与MapReduce对比,MapReduce流程,MapReduce原理,Map shuffle,Reduce shuffle,MapTask,ReduceTask原创 2023-12-15 16:02:44 · 2044 阅读 · 0 评论 -
【Spark精讲】Spark Shuffle详解
Spark Shuffle详解,Shuffle执行流程,ShuffledRDD生成,Stage划分,Task划分,Shuffle Write,Shuffle Read,SortShuffleManager运行机制,Spark Shuffle调优,Spark Shuffle参数调优,广播变量原创 2023-12-14 18:52:55 · 1649 阅读 · 0 评论 -
【Spark精讲】Spark存储原理
Spark精讲,Spark存储原理,BlockManager,BlockManagerMaster,RDD的持久化机制,RDD缓存过程,Block淘汰和落盘原创 2023-12-13 21:24:05 · 2877 阅读 · 0 评论 -
【Spark精讲】Spark内存管理
Spark精讲,Spark内存管理,静态内存管理,统一内存管理,Java运行时数据区,Java堆,垃圾回收机制原创 2023-12-13 14:14:31 · 1584 阅读 · 0 评论 -
【Spark精讲】Spark作业执行原理
Spark精讲,Spark作业执行原理,Job提交执行流程,Job执行流程,Task执行流程,DAGScheduler,TaskScheduler,SchedulerBackend,BlockManager原创 2023-12-12 20:32:54 · 1323 阅读 · 0 评论 -
【Spark精讲】Spark任务运行流程
Spark精讲,Spark任务运行流程,Spark任务执行流程,client模式,cluster模式,yarn-client模式,yarn-cluster模式,master参数原创 2023-12-12 13:11:27 · 3456 阅读 · 0 评论 -
【Spark精讲】RDD特性之数据本地化
Spark精讲,RDD特性,数据本地化,首选运行位置,最佳计算位置,数据的本地化级别,PROCESS_LOCAL,NODE_LOCAL,NO_PREF,RACK_LOCAL,ANY原创 2023-12-12 11:17:28 · 979 阅读 · 0 评论