- 博客(13)
- 收藏
- 关注
原创 Spark性能优化(3)
一:数据结构优化为啥要优化数据结构?减少内存使用,避免JVM由于语法特性导致的额外内存开销。1. Java的对象:对象头是16个字节(例如指向对象的指针等元数据信息),如果对象中只有一个int的property,则此时会占据20个字节,也就是说对象的元数据占用了大部分的空间,所有在封装数据的时候尽量不要使用对象!例如说使用JSON格式来封装数据;2. J
2016-02-29 19:55:47 535
原创 Spark性能优化(2)
一:Task性能优化 1. 慢任务的性能优化:可以考虑减少每个Partition处理的数据量,同时建议开启任务推测spark.speculation可以进行任务推测。最快完成的任务就会被采纳 慢任务出现的原因?任务倾斜,硬件故障。因为处理逻辑一样的话,时间差很多那么硬件就可能出现故障。Driver上有一个定时器不断的查看有没有慢任务。 2. 尽量减少Shuffle,例如我们要尽量减少gro
2016-02-29 16:40:45 635
原创 Spark性能优化(1)
一:Spark性能优化核心基石 1, Spark是采用Master-Slaves的模式进行资源管理和任务执行的管理: a) 资源管理:Master-Workers,在一台机器上可以有多个Workers,可以通过Spark-env.sh可以让每台host上有若干的Worker; b) 任务执行:Driver-Executors,在一台机器上Driver只有一个,当在一台机器上分配多个Wor
2016-02-29 16:12:55 864
原创 BlockManager初始化和注册,BlockManager核心方法详解
本篇博文的重要内容如下: 1. BlockManager的注册和初始化 2. BlockManager里面的重要函数详细介绍 先对一些基本概念名词介绍: Block是Spark数据处理的时候最小单位 一:BlockManager初始化 1. BlockManager的实例对象调用initializes的时候才能正常工作。
2016-02-20 00:04:07 2725
原创 BlockManager架构原理源码解析
本篇博文的主要内容如下: 1. BlockManager运行实例 2. BlockManager原理流程图 3. BlockManager源码解析 一:BlockManager运行实例观察 从Application启动的角度来观察BlockManager1. 在Application启动的时候还在SparkEnv中注册Bl
2016-02-19 23:33:03 1365
原创 Spark源码解读-TaskScheduler源码详解
简要: 本篇博文主要讨论的内容如下: 1. TaskScheduler与SchedulerBackend 2. FIFO与FAIR两种调度模式彻底解密 3. Task数据本地性资源分配源码实现 总体底层任务调度的过程如下: 1. DAGScheduler会把TaskSet通过submitTasks提交给TaskSchedul
2016-02-15 22:14:30 1476
原创 Spark源码解读-Taskscheduler源码解析
简要: 本篇博文主要讨论的内容如下; 1. Taskscheduler工作原理 2. Taskscheduler源码解密 前置知识: 一:TaskScheduler原理解密 1. DAGScheduler在提交TaskSet给底层调度器的时候是面向接口TaskScheduler的,这符合面向对象中依赖抽象而不依赖具体的
2016-02-15 21:46:03 1061
原创 第34课:Stage划分和Task最佳位置算法源码彻底解密
简介: 一:Stage划分算法解密 二:Task任务本地性算法实现 一:Stage划分算法解密 1.Spark Application中可以因为不同的Action触发众多的Job,也就是说一个Application中可以有很多的Job,每个Job是由一个或者多个Stage构成的,后面的Stage依赖于前面的Stage,也就是说只有前面依赖的Stage计算完毕后
2016-02-14 11:49:38 2136
原创 第33课:Spark Executor内幕彻底解密:Executor工作原理图、ExecutorBackend注册源码解密、Executor实例化内幕、Executor具体工作内幕
简要: 本篇博文主要讨论的内容如下; 1. Executor工作原理 2. ExecutorBackend注册源码解密 3. Executor实例化及具体如何工作 前置知识: 为啥Worker不直接启动Executor,而是启动另一个线程来启动Executor? 1. Worker是管理当前机器资源的,当当前机器的资源发生改变的时候,会将消息汇报给Master的。 2
2016-02-12 01:23:31 2382
原创 第14、15课Java数组与方法零基础编程实战课堂笔记
概要: 数组零基础实战 方法零基础实战 一. Java中一维数组 1. 数组:是一组相关数据的集合,数组中的数据类型一定是完全相同; 2. 数组的三种类型:一维数组,二维数组,多维数组; 3. 要使用数组,首先要声明数组,然后要分配具体的内存给数组; 代码实现:int scores[] = null; //声明scores为整型数组scores = new
2016-02-04 22:55:31 652
原创 第4讲:Scala模式匹配、类型系统彻底精通与Spark源码阅读
简介: 本篇文章主要要点有: Scala模式匹配彻底详解 Scala类型系统彻底详解 Spark源码阅读及作业 1. Scala模式匹配彻底详解 Scala中的模式匹配类似于java中的switch case,但是switch case是对值进行匹配,操作的对象也是值。Scala除了对值可以进行匹配外,还可以对类型进行匹配,也可以对集合,例如,map
2016-02-04 22:34:12 961
原创 第3讲:Scala函数式编程彻底精通
简介: 本篇博文主要是对Scala函数式编程的彻底详解,涉及高阶函数,闭包,颗粒化等详解。 1. Scala函数式编程 Scala中的函数的可以不依赖类或则借口,独立存在,甚至函数可以作为参数传递,可以直接赋值给变量。 Scala的函数式编程使得算法的设计可以更高效更精简,因为函数式是依赖人们的思考 方式构建的。 Scala的函数式编程是的开发代码行数更少。 Sp
2016-02-03 11:37:07 3882
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人