最新文章列表

Spark源码系列(六)Shuffle的过程解析

Spark大会上,所有的演讲嘉宾都认为shuffle是最影响性能的地方,但是又无可奈何。之前去百度面试hadoop的时候,也被问到了这个问题,直接回答了不知道。 这篇文章主要是沿着下面几个问题来开展: 1、shuffle过程的划分? 2、shuffle的中间结果如何存储? 3、shuffle的数据如何拉取过来? Shuffle过程的划分 Spark的操作模型是基于RDD的,当调用RD ...
wbj0110 评论(0) 有947人浏览 2015-02-27 15:51

Spark源码系列(五)分布式缓存

这一章想讲一下Spark的缓存是如何实现的。这个persist方法是在RDD里面的,所以我们直接打开RDD这个类。 def persist(newLevel: StorageLevel): this.type = { // StorageLevel不能随意更改 if (storageLevel != StorageLevel.NONE && newLevel != ...
wbj0110 评论(0) 有854人浏览 2015-02-27 15:51

Spark源码系列(四)图解作业生命周期

这一章我们探索了Spark作业的运行过程,但是没把整个过程描绘出来,好,跟着我走吧,let you know! 我们先回顾一下这个图,Driver Program是我们写的那个程序,它的核心是SparkContext,回想一下,从api的使用角度,RDD都必须通过它来获得。 下面讲一讲它所不为认知的一面,它和其它组件是如何交互的。 Driver向Master注册Application过 ...
wbj0110 评论(0) 有506人浏览 2015-02-26 15:19

Spark源码系列(三)作业运行过程

作业执行 上一章讲了RDD的转换,但是没讲作业的运行,它和Driver Program的关系是啥,和RDD的关系是啥? 官方给的例子里面,一执行collect方法就能出结果,那我们就从collect开始看吧,进入RDD,找到collect方法。 def collect(): Array[T] = { val results = sc.runJob(this, (iter: ...
wbj0110 评论(0) 有579人浏览 2015-02-26 15:18

Spark源码系列(二)RDD详解

1、什么是RDD? 上一章讲了Spark提交作业的过程,这一章我们要讲RDD。简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据。 RDD的全名是Res ...
wbj0110 评论(0) 有805人浏览 2015-02-26 15:18

Spark源码系列(一)spark-submit提交作业过程

前言 折腾了很久,终于开始学习Spark的源码了,第一篇我打算讲一下Spark作业的提交过程。   这个是Spark的App运行图,它通过一个Driver来和集群通信,集群负责作业的分配。今天我要讲的是如何创建这个Driver Program的过程。 作业提交方法以及参数 我们先看一下用Spark Submit提交的方法吧,下面是从官方上面摘抄的内容。
wbj0110 评论(0) 有1018人浏览 2015-02-26 15:18

详细探究Spark的shuffle实现

Shuffle Shuffle是MapReduce框架中的一个特定的phase,介于Map phase和Reduce phase之间,当Map的输出结果要被Reduce使用时,输出结果需要按key哈希,并且分发到每 ...
wbj0110 评论(0) 有845人浏览 2015-02-25 15:13

Spark源码分析之-Storage模块

Storage模块整体架构 Storage模块主要分为两层: 通信层:storage模块采用的是master-slave结构来实现通信层,master和slave之间传输控制信息、状态信息,这些都是通过通信层来实现的。 存储层:storage模块需要把数据存储到disk或是memory上面,有可能还需replicate到远端,这都是由存储层来实现和提供相应接口。 而其他模块若要和st ...
wbj0110 评论(0) 有879人浏览 2015-02-25 15:13

spark eclipse写wordcount

安装spark,见上文 http://blackproof.iteye.com/blog/2182393   配置window开发环境 window安装scala 下载scala http://www.scala-lang.org/files/archive/scala-2.10.4.msi 安装即可   window配置eclipse 下载eclipse   http:// ...
blackproof 评论(0) 有2700人浏览 2015-02-03 10:18

转 spark简单实例

1、准备文件 2、加载文件 3、显示一行 4、函数运用  (1)map  (2)collecct  (3)filter
blackproof 评论(0) 有3263人浏览 2015-02-02 15:09

spark集群搭建

  安装scala 下载scala-2.11.4 解压 配置环境变量 SCALA_HOME=/home/hadoop-cdh/app/test/scala-2.11.4 PATH=$PATH:$SCALA_HOME/bin   安装spark 下载 spark-1.2.0-bin-hadoop2.3 (需要和hadoop版本对应,不然会有protocal的错) 解压 配置 ...
blackproof 评论(0) 有1277人浏览 2015-02-02 12:04

Spark源码分析之-deploy模块

Deploy模块整体架构 deploy模块主要包含3个子模块:master, worker, client。他们继承于Actor,通过actor实现互相之间的通信。 Master:master的主要功能是接收worker的注册并管理所有的worker,接收client提交的application,(FIFO)调度等待的application并向worker提交。 Worker:wor ...
wbj0110 评论(0) 有1057人浏览 2015-01-30 09:05

Spark源码分析之-scheduler模块

Background Spark在资源管理和调度方式上采用了类似于Hadoop YARN的方式,最上层是资源调度器,它负责分配资源和调度注册到Spark中的所有应用,Spark选用Mesos或是YARN等作为其资源调度框架。在每一个应用内部,Spark又实现了任务调度器,负责任务的调度和协调,类似于MapReduce。本质上,外层的资源调度和内层的任务调度相互独立,各司其职。本文对于Spark ...
wbj0110 评论(0) 有951人浏览 2015-01-30 09:04

Spark Core源码分析: Spark任务模型

概述   一个Spark的Job分为多个stage,最后一个stage会包括一个或多个ResultTask,前面的stages会包括一个或多个ShuffleMapTasks。 ResultTask执行并将结果返回给driver application。 ShuffleMapTask将task的output根据task的partition分离到多个buckets里。一个ShuffleMap ...
wbj0110 评论(0) 有765人浏览 2015-01-26 09:31

Spark Core源码分析: Spark任务执行模型

DAGScheduler   面向stage的调度层,为job生成以stage组成的DAG,提交TaskSet给TaskScheduler执行。 每一个Stage内,都是独立的tasks,他们共同执行同一个compute function,享有相同的shuffledependencies。DAG在切分stage的时候是依照出现shuffle为界限的。 Java代码   ...
wbj0110 评论(0) 有831人浏览 2015-01-26 09:31

Spark Core源码分析: RDD基础

RDD   RDD初始参数:上下文和一组依赖 Java代码   abstract class RDD[T: ClassTag](       @transient private var sc: SparkContext,       @transient 
wbj0110 评论(0) 有806人浏览 2015-01-26 09:31

spark出现GC overhead limit exceeded和java heap space

 spark执行任务时出现java.lang.OutOfMemoryError: GC overhead limit exceeded和java.lang.OutOfMemoryError: java heap space 最直接的解决方式就是在spark-env.sh中将下面两个参数调节的尽量大     export SPARK_EXECUTOR_MEMORY=6000M    export ...
wbj0110 评论(0) 有1439人浏览 2015-01-21 10:50

spark内核揭秘-03-spark核心组件

spark核心组件如下所示:     在SparkContext初始化的时候,会初始化一系列内容: 查看内存使用情况:   创建和启动scheduler:     集群核心组件中的Block tracker是用于block和partition对应关系的管理。 集群核心组件中的shuffle tracker是用于记录shuffle操作的过程细节。 从集群中也可以 ...
Stark_Summer 评论(0) 有1381人浏览 2015-01-18 09:48

Spark集群的安装与部署

  一,安装Scala 下载 :http://www.scala-lang.org/download/  配置环境变量的方式同Java,为了方便全部写在一起放入/etc/profile.d目录 hadoop.sh   #set Java Enviromen ...
yeelor 评论(1) 有1756人浏览 2015-01-17 22:25

spark架构设计&编程模型 02

启动spark-shell: 简单的RDD: 上述代码中使用的sc,这是Spark-Shell帮助我们自动生成的SparkContext的实例: 我们把生成的RDD的每个元素都乘以3: 上述的操作都是transformations我们需要触发一个action才能执行:
Stark_Summer 评论(0) 有1598人浏览 2015-01-16 18:53

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics