Solo  当前访客:2 登录 注册
☆gater yu☆

~~ 一个java老鸟的博客 ~~

Spark技术内幕:一个图搞定Spark到底有多少行代码

Spark1.0.0发布一个多月了,那么它有多少行代码(LineofCode,LOC)?注:代码统计未包含测试,sample。...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 172 | 评论总数: 0 | 标签:

Spark技术内幕:Worker源码与架构解析

首先通过一张Spark的架构图来了解Worker在Spark中的作用和地位:Worker所起的作用有以下几个:1.接受Master的指令,启动或者杀掉Executor2.接受Master的指令,启动或者杀掉Driver3.报告Executor/Driver的状态到Master4.心跳到Master,心跳超时则Master认为Worker已经挂了不能工作了5.向GUI报告Worker的状态说白了,W...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 167 | 评论总数: 0 | 标签:

Spark1.0开发环境构建:maven/sbt/idea

因为我原来对maven和sbt都不熟悉,因此使用两种方法都编译了一下。下面记录一下编译时候遇到的问题。然后介绍一下如果使用IntelliJIDEA13.1构建开发环境。首先准备java环境和scala环境:1.jdk1.72.scala2.11.11.maven首先安装maven,我安装的是3.2.3,可以直接下载binary。解压即可用。需要设置一下环境变量:exportMAVEN_HOME=/...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 272 | 评论总数: 0 | 标签:

Spark技术内幕之任务调度:从SparkContext开始

SparkContext是开发Spark应用的入口,它负责和整个集群的交互,包括创建RDD,accumulatorsandbroadcastvariables。理解Spark的架构,需要从这个入口开始。下图是官网的架构图。DriverProgram就是用户提交的程序,这里边定义了SparkContext的实例。SparkContext定义在core/src/main/scala/org/apach...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 466 | 评论总数: 0 | 标签:

Spark技术内幕:Executor分配详解

当用户应用newSparkContext后,集群就会为在Worker上分配executor,那么这个过程是什么呢?本文以Standalone的Cluster为例,详细的阐述这个过程。序列图如下:1.SparkContext创建TaskScheduler和DAGSchedulerSparkContext是用户应用和Spark集群的交换的主要接口,用户应用一般首先要创建它。如果你使用SparkShel...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 188 | 评论总数: 0 | 标签:

Spark技术内幕:Master的故障恢复

Spark技术内幕:Master基于ZooKeeper的HighAvailability(HA)源码实现详细阐述了使用ZK实现的Master的HA,那么Master是如何快速故障恢复的呢?处于Standby状态的Master在接收到org.apache.spark.deploy.master.ZooKeeperLeaderElectionAgent发送的ElectedLeader消息后,就开始通过...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 169 | 评论总数: 0 | 标签:

Spark技术内幕:究竟什么是RDD

RDD是Spark最基本,也是最根本的数据抽象。http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf是关于RDD的论文。如果觉得英文阅读太费时间,可以看这篇译文:http://shiyanjun.cn/archives/744.html本文也是基于这篇论文和源码,分析RDD的实现。第一个问题,RDD是什么?ResilientDis...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 172 | 评论总数: 0 | 标签:

Spark技术内幕:Stage划分及提交源码分析

当触发一个RDD的action后,以count为例,调用关系如下:org.apache.spark.rdd.RDD#countorg.apache.spark.SparkContext#runJoborg.apache.spark.scheduler.DAGScheduler#runJoborg.apache.spark.scheduler.DAGScheduler#submitJoborg.ap...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 162 | 评论总数: 0 | 标签:

Spark技术内幕:Task向Executor提交的源码解析

在上文《Spark技术内幕:Stage划分及提交源码分析》中,我们分析了Stage的生成和提交。但是Stage的提交,只是DAGScheduler完成了对DAG的划分,生成了一个计算拓扑,即需要按照顺序计算的Stage,Stage中包含了可以以partition为单位并行计算的Task。我们并没有分析Stage中得Task是如何生成并且最终提交到Executor中去的。这就是本文的主题。从org....

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 387 | 评论总数: 0 | 标签:

Spark技术内幕:Shuffle详解(一)

通过上面一系列文章,我们知道在集群启动时,在Standalone模式下,Worker会向Master注册,使得Master可以感知进而管理整个集群;Master通过借助ZK,可以简单的实现HA;而应用方通过SparkContext这个与集群的交互接口,在创建SparkContext时就完成了Application的注册,Master为其分配Executor;在应用方创建了RDD并且在这个RDD上进...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 171 | 评论总数: 0 | 标签:

Spark技术内幕:Shuffle详解(三)

前两篇文章写了ShuffleRead的一些实现细节。但是要想彻底理清楚这里边的实现逻辑,还是需要更多篇幅的;本篇开始,将按照Job的执行顺序,来讲解Shuffle。即,结果数据(ShuffleMapTask的结果和ResultTask的结果)是如何产生的;结果是如何处理的;结果是如何读取的。在Worker上接收Task执行命令的是org.apache.spark.executor.CoarseGr...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 252 | 评论总数: 0 | 标签:

Spark技术内幕:Shuffle详解(二)

本文主要关注ShuffledRDD的ShuffleRead是如何从其他的node上读取数据的。上文讲到了获取如何获取的策略都在org.apache.spark.storage.BlockFetcherIterator.BasicBlockFetcherIterator#splitLocalRemoteBlocks中。可以见注释。protecteddefsplitLocalRemoteBlocks(...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 173 | 评论总数: 0 | 标签:

2014BDTC参会有感

中国大数据技术大会(BigDataTechnologyConference,BDTC)是目前国内最具影响、规模最大的大数据领域的技术盛会。大会的前身是Hadoop中国云计算大会(HadoopinChina,HiC)。从2008年仅60人参加的技术沙龙到当下的数千人技术盛宴,作为业内极具实战价值的专业交流平台,已经成功举办七届的中国大数据技术大会忠实地描绘了大数据领域内的技术热点,沉淀了行业实战经验...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 174 | 评论总数: 0 | 标签:

What’snewinSpark1.2.0

What’snewinSpark1.2.01.2.0wasreleasedon12/18,2014在2014年5月30日发布了Spark1.0和9月11日发布了Spark1.1.后,Spark1.2终于在12月18日发布。作为1.X时代的第三个release,它有什么重要更新呢?1.    SparkCore:性能和易用性的改进对于超大规模的Shuffle,SparkCore在性能和稳定性方面做了...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 365 | 评论总数: 0 | 标签:

Spark技术内幕:SortBasedShuffle实现解析

在Spark1.2.0中,SparkCore的一个重要的升级就是将默认的HashBasedShuffle换成了SortBasedShuffle,即spark.shuffle.manager从hash换成了sort,对应的实现类分别是org.apache.spark.shuffle.hash.HashShuffleManager和org.apache.spark.shuffle.sort.SortS...

作者:sky | 创建日期: 2016-11-15 12:02 | 浏览次数: 176 | 评论总数: 0 | 标签:

Spark技术内幕:如何解决ShuffleWrite一定要落盘的问题?

在Spark0.6和0.7时,Shuffle的结果都需要先存储到内存中(有可能要写入磁盘),因此对于大数据量的情况下,发生GC和OOM的概率非常大。因此在Spark0.8的时候,Shuffle的每个record都会直接写入磁盘,并且为下游的每个Task都生成一个单独的文件。这样解决了Shuffle解决都需要存入内存的问题,但是又引入了另外一个问题:生成的小文件过多,尤其在每个文件的数据量不大而文件...

作者:sky | 创建日期: 2016-11-15 12:01 | 浏览次数: 186 | 评论总数: 0 | 标签:

Spark技术内幕:ShuffleRead的整体流程

回忆一下,每个Stage的上边界,要么需要从外部存储读取数据,要么需要读取上一个Stage的输出;而下边界,要么是需要写入本地文件系统(需要Shuffle),以供childStage读取,要么是最后一个Stage,需要输出结果。这里的Stage,在运行时的时候就是可以以pipeline的方式运行的一组Task,除了最后一个Stage对应的是ResultTask,其余的Stage对应的都是Shuff...

作者:sky | 创建日期: 2016-11-15 12:01 | 浏览次数: 173 | 评论总数: 0 | 标签:

Spark技术内幕:ShuffleMapTask运算结果的处理

ShuffleMapTask运算结果的处理这个结果的处理,分为两部分,一个是在Executor端是如何直接处理Task的结果的;还有就是Driver端,如果在接到Task运行结束的消息时,如何对ShuffleWrite的结果进行处理,从而在调度下游的Task时,下游的Task可以得到其需要的数据。Executor端的处理在解析BasicShuffleWriter时,我们知道ShuffleMapTa...

作者:sky | 创建日期: 2016-11-15 12:01 | 浏览次数: 733 | 评论总数: 0 | 标签:

Spark技术内幕:Storage模块整体架构

Storage模块负责了Spark计算过程中所有的存储,包括基于Disk的和基于Memory的。用户在实际编程中,面对的是RDD,可以将RDD的数据通过调用org.apache.spark.rdd.RDD#cache将数据持久化;持久化的动作都是由Storage模块完成的。包括Shuffle过程中的数据,也都是由Storage模块管理的。可以说,RDD实现了用户的逻辑,而Storage则管理了用户...

作者:sky | 创建日期: 2016-11-15 12:01 | 浏览次数: 192 | 评论总数: 0 | 标签:

Spark技术内幕:Shuffle的性能调优

通过上面的架构和源码实现的分析,不难得出Shuffle是SparkCore比较复杂的模块的结论。它也是非常影响性能的操作之一。因此,在这里整理了会影响Shuffle性能的各项配置。尽管大部分的配置项在前文已经解释过它的含义,由于这些参数的确是非常重要,这里算是做一个详细的总结。1.1.1  spark.shuffle.manager前文也多次提到过,Spark1.2.0官方支持两种方式的Shuff...

作者:sky | 创建日期: 2016-11-15 12:01 | 浏览次数: 256 | 评论总数: 0 | 标签:

第一页 上一页 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 下一页 最后一页   共 59 页面