我的第一本著作:Spark技术内幕上市!

现在各大网站销售中!京东:http://item.jd.com/11770787.html当当:http://product.dangdang.com/23776595.html亚马逊:http://www.amazon.cn/SparkInternals前言和目录附上,以便有需要了解的同学:诞生于2005年的Hadoop解决了大数据的存储和计算问题,已经成为大数据处理的事...
阅读(50042) 评论(26)

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

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

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

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

Spark技术内幕:Shuffle Read的整体流程

本文详细讲解Shuffle Read的整个过程,包括如何获得Block的元数据信息,进行网络,本地读取。通过一个整体的流程架构图,详细大家可以对整个过程有一个更加深刻的把握...
阅读(16345) 评论(16)

Spark技术内幕:Shuffle Map Task运算结果的处理

Shuffle Map Task运算结果的处理这个结果的处理,分为两部分,一个是在Executor端是如何直接处理Task的结果的;还有就是Driver端,如果在接到Task运行结束的消息时,如何对Shuffle Write的结果进行处理,从而在调度下游的Task时,下游的Task可以得到其需要的数据。Executor端的处理在解析BasicShuffle Writer时,我们知道ShuffleM...
阅读(16013) 评论(12)

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

在Spark 0.6和0.7时,Shuffle的结果都需要先存储到内存中(有可能要写入磁盘),因此对于大数据量的情况下,发生GC和OOM的概率非常大。因此在Spark 0.8的时候,Shuffle的每个record都会直接写入磁盘。一直到1.2.0,Shuffle的数据是一定会写入本地文件系统的,那么对于性能要求非常苛刻的用户,如何获得更好的性能呢?...
阅读(14016) 评论(8)

Spark技术内幕:Shuffle Pluggable框架详解,你怎么开发自己的Shuffle Service?

通过Hash Based Shuffle和Sort Based Shuffle的源码,可以得出使用Spark Pluggable框架开发一个第三方的Shuffle Service是比较容易的;这个容易是指功能实现方面。但是这个实现必须要考虑超大规模数据场景下的性能问题,资源消耗问题。...
阅读(14365) 评论(5)

Spark技术内幕:Sort Based Shuffle实现解析

在Spark 1.2.0中,Spark Core的一个重要的升级就是将默认的Hash Based Shuffle换成了Sort Based Shuffle,即spark.shuffle.manager 从hash换成了sort,对应的实现类分别是org.apache.spark.shuffle.hash.HashShuffleManager和org.apache.spark.shuffle.sort.SortShuffleManager。 那么Sort BasedShuffle“取代”Hash BasedS...
阅读(15849) 评论(8)

2014博客之星: 请大家为我投票

我的400多位CSDN的粉丝们,大家动一下鼠标给我投一票吧。衔接: http://vote.blog.csdn.net/blogstar2014/details?username=anzhsoft2008#content 对于非粉丝并且未登录的,可以使用QQ,微博,百度账号等第三方登陆。谢谢...
阅读(3418) 评论(67)

What’s new in Spark 1.2.0

1.2.0 was released on 12/18, 2014 在2014年5月30日发布了Spark 1.0 和9月11日发布了Spark1.1.后,Spark 1.2 终于在12月18日发布。作为1.X时代的第三个release,它有什么重要更新呢?...
阅读(3394) 评论(1)

2014 BDTC 参会有感

中国大数据技术大会(Big Data Technology Conference,BDTC)是目前国内最具影响、规模最大的大数据领域的技术盛会。大会的前身是Hadoop中国云计算大会(Hadoop in China,HiC)。从2008年仅60人参加的技术沙龙到当下的数千人技术盛宴,作为业内极具实战价值的专业交流平台,已经成功举办七届的中国大数据技术大会忠实地描绘了大数据领域内的技术热点,沉淀了行业实战经验,见证了整个大数据生态圈技术的发展与演变。...
阅读(3834) 评论(11)

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

前两篇文章写了Shuffle Read的一些实现细节。但是要想彻底理清楚这里边的实现逻辑,还是需要更多篇幅的;本篇开始,将按照Job的执行顺序,来讲解Shuffle。即,结果数据(ShuffleMapTask的结果和ResultTask的结果)是如何产生的;结果是如何处理的;结果是如何读取的。...
阅读(5083) 评论(4)

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

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

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

通过上面一系列文章,我们知道在集群启动时,在Standalone模式下,Worker会向Master注册,使得Master可以感知进而管理整个集群;Master通过借助ZK,可以简单的实现HA;而应用方通过SparkContext这个与集群的交互接口,在创建SparkContext时就完成了Application的注册,Master为其分配Executor;在应用方创建了RDD并且在这个RDD上进行了很多的Transformation后,触发action,通过DAGScheduler将DAG划分为不同的St...
阅读(18804) 评论(16)

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

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

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

在一个RDD触发了一个action(比如count,collect)时,任务是如何被提交到?什么是Stage?DAGScheduler的作用是什么?它是如何划分Stage的?本文将基于源码,进行深入分析。...
阅读(25570) 评论(29)

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

RDD是Spark最基本,也是最根本的数据抽象。http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf 是关于RDD的论文。如果觉得英文阅读太费时间,可以看这篇译文:http://shiyanjun.cn/archives/744.html 本文也是基于这篇论文和源码,分析RDD的实现。 第一个问题,RDD是什么?Resilient Distributed Datasets(RDD,) 弹性分布式数据集。RDD是只读的、分区记录的集合。RD...
阅读(16804) 评论(4)

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

使用ZK作为HA方案的Master是如何快速故障恢复的呢?本文为你详细解读。最后给出的流程图,可以清楚的理解恢复过程的数据流程和处理逻辑。...
阅读(9802) 评论(9)

Spark技术内幕:Executor分配详解

当用户应用new SparkContext后,集群就会为在Worker上分配executor,那么这个过程是什么呢?本文以Standalone的Cluster为例,详细的阐述这个过程。...
阅读(22899) 评论(28)

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

SparkContext是开发Spark应用的入口,它负责和整个集群的交互,包括创建RDD,accumulators and broadcast variables。理解Spark的架构,需要从这个入口开始。...
阅读(12177) 评论(2)
28条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1798662次
    • 积分:14931
    • 等级:
    • 排名:第732名
    • 原创:105篇
    • 转载:0篇
    • 译文:1篇
    • 评论:755条
    版权声明
    鉴于很多网站转载本博客的文章而大部分都没有标明出处,本博客声明如下: 本博客所有文章都为原创,未经允许,不得转载;未经允许,不得进行商业发布或者其他的盈利性活动。如发现侵权,将依法追究其责任。
    博客专栏
    我的微博