




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深入Spark内核 陈 超 CrazyJvm 术语解释 2 术语解释 Application基于Spark的用户程序,包含了driver程序和集群上的executor Driver Program运行main函数并且新建SparkContext的程序 Cluster Manager 在集群上获取资源的外部服务(例如:standalone,Mesos,Yarn ) Worker Node 集群中任何可以运行应用代码的节点 Executor 是在一个worker node上为某应用启动的一个进程,该进程负责运行任务,并且负责 将数据存在内存或者磁盘上。每个应用都有各自独立的executors Task被送到某个executor上的工作单元 Job包含很多任务的并行计算,可以看做和Spark的action对应 Stage 一个Job会被拆分很多组任务,每组任务被称为Stage(就像Mapreduce分map任务和 reduce任务一样) Cluster Overview 3 Driver Program SparkContextCluster Manager Worker Node Executor Cache TaskTask Worker Node Executor Cache TaskTask 核心组件 4 val sc = new SparkContext val data = sc.textFile(“”) data.fi lter().count Your program RDD graph Scheduler Block tracker Shuffl e tracker Task Threads Task Threads Cluster manager HDFS,HBase, Spark client? (app master) Spark worker RDD图 5 HadoopRDD path=hdfs:/ 数据层面 fi le: FilteredRDD func=_.contains() rdd.cache errors: Partition层面 Task1Task2Task3 每个partition都 会分配一个task 数据本地性如何? 6 第一次运行时数据不在内存中,所以 从HDFS上取,任务最好运行在数据所 在的节点上! 第二次运行,数据已经在内存中,所 以任务最好运行在该数据所在内存的 节点上。 万一有数据被置换出内存,则仍然从 HDFS上取。 文件系统本地性 内存本地性 LRU置换 任务调度! 7 再看RDD ? ? ? 分区 protected def getPartitions: ArrayPartition? 依赖 protected def getDependencies: SeqDependency_ = deps? 函数 def compute(split: Partition, context: TaskContext): IteratorT? 最佳位置(可选) protected def getPreferredLocations(split: Partition): SeqString = Nil? 分区策略(可选) transient val partitioner: OptionPartitioner = None 8 最常见的HadoopRDD 分区: 每个HDFS block 依赖: 无 函数: 读取每一个block 最佳位置: HDFS block所在位置 分区策略: 无 9 FilteredRDD 分区: 与父RDD一致 依赖: 与父RDD一对一 函数: 计算父RDD的每个分区并过滤 最佳位置: 无(与父RDD一致) 分区策略: 无 10 JoinedRDD 分区 : 每个reduce任务一个分区 依赖 : 依赖所有父RDD 函数 :读取suffl e数据并计算 最佳位置 : 无 分区策略 : HashPartitioner(partitions: Int) 11 ? ? 基于Stage构建DAG,决定每个任务的最佳位置 记录哪个RDD或者Stage输出被物化 将taskset传给底层调度器TaskScheduler 重新提交shuffl e输出丢失的stage 细看DAG Scheduler 12 DAG Scheduler 目标RDD计算每个分区的函数结果侦听器 调度器优化 ? 一个Stage内的窄依赖进行pipeline操作 1+1+1+1 = 4 1+1=2;2+1=3;3+1=4 基于partition选择最优的join算法使shuffl e的数据最小化 重用已经缓存过的数据 13 灰颜色代表之前 已经算好的分区 Task细节 ? Stage边界只出现在外部输入及取shuffl e数据的时候 为了容错,会把suffl e输出写在磁盘或者内存 任何一个任务可以运行在任何一个节点 允许任务使用那些被缓存但是已经被置换出去的数据 14 外部存储 shuffl e数据 Task f1f2f3 输出文件 TaskScheduler 提交taskset(一组task)到集群运行并汇报结果 出现shuffl e输出lost要报告fetch failed错误 碰到straggle任务需要放到别的节点上重试 为每一个TaskSet维护一个TaskSetManager(追踪 本地性及错误信息) 15 Job调度流程 16 Master conn.write(x.toString);conn.close 解决: ? 23 rdd.mapPartitions(records = conn.getDBConn;for(item - records) write(item.toString); conn.close) map是在每个元素上应用此函数,mapPartition是在一个partition上应用此函数 优化点4 问题: 任务执行速度倾斜 解决: 24 1、数据倾斜(一般是partition key取的不好) 考虑其它的并行处理方式 中间可以加入一步aggregation 2、Worker倾斜(在某些worker上的executor不给力) 设置spark.speculation=true 把那些持续不给力的node去掉 对比Hadoop MapReduce的speculation 优化点5 问题: 解决: 设置一组磁盘 25 不设置spark.local.dir 这是spark写shuffl e输出的地方? spark.local.dir=/mn1/spark, /mnt2/spar, /mnt3/spark? 增加IO即加快速度 优化点6 问题: reducer数量不合适 解决: 需要按照实际情况调整 26 太多的reducer,造成很多的小任务,以此产生很多启动任务的开销。? 太少的reducer,任务执行慢!? 默认reduce数量? reduce的任务数还会影响到内存 优化点7 问题 : collect输出大量结果慢 解决 : 直接输出到分布式文件系统 27 查看collect源码?会发现什么? 优化点8 问题:序列化 ? 解决: 使用K
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河南-河南理疗技术员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南有线广播电视机务员五级(初级工)历年参考题库典型考点含答案解析
- 2024版机械加工承包合同范本
- 2025年事业单位工勤技能-河北-河北家禽饲养员四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河北-河北兽医防治员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江西-江西园林绿化工二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西经济岗位工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西管工(技师/高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西检验员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西客房服务员三级(高级工)历年参考题库典型考点含答案解析
- 溺水患者急救培训
- 2026版步步高大一轮高考数学复习讲义第十章 §10.1 计数原理与排列组合含答案
- 人力公司营销策划方案
- 医院医疗用房管理制度
- 股权代持协议终止协议书
- 捡土豆装车合同协议书
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
- 海天对客户分级管理
- 薪资抵扣协议书模板
- 血管内导管相关性血流感染预防与诊治指南(2025)解读课件
- 人力资源培训:招聘与面试技巧
评论
0/150
提交评论