Spark源码分析
名词解释
RDD
全称为ResilientDistributedDataset,弹性分布式数据集。
就是分布在集群节点上的数据集,这些集合可以用来进行各种操作。最重要的一点是,某个操作计算后的数据集可以缓存在内存中,然后给其他计算使用,这种在迭代计算中很常见。比如:我们可以从hdfs文件里创建一个数据集,然后经过filter后,会生成一个新的数据集,还可以进行groupby,map函数等操作,得到另一个数据集。
Iterator
迭代器,即是提供一级接口给其他人来访问RDD中的数据集。
Job
一道作业,即指应用完成某项需求所需要一系列工作,统一称为作业。
DAG
有向无环图,将作业分解成若干个阶段,每个阶段都是由若干个task组成,而这些阶段都是有先后顺序的,故将这些阶段组织成DAG,来表示其先后顺序。
Stage
阶段,是指job中的一个结点。
Taskset
每个阶段将由若干个task组成,这些task统一称为taskset。
Task
Task是指最终在slave结点上运行的工作。
与MR的区别
MR的缺点:
1.Shuffle的性能。Map到reduce之间数据多次需要IO操作。
2.当有多个MR时,每轮的MR之间需要将结果写到hdfs上。
3.只有map,reduce二种计算模型,无法建立一组DAG操作,来减少中间的一些操作开销。
以上的缺点都是spark的优点。
相关知识
Scala
Scala是运行在JVM之上的编程语言。集成了面向对象和函数式语言的特点,代码量比java要少2-3倍。
Akka
是轻量级异步事件处理的消息系统。
Spark源码分析的更多相关文章
- Spark源码分析(三)-TaskScheduler创建
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3879151.html 在SparkContext创建过程中会调用createTaskScheduler函 ...
- Spark源码分析环境搭建
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3868718.html 本文主要分享一下如何构建Spark源码分析环境.以前主要使用eclipse来阅读源 ...
- Spark源码分析之Spark Shell(下)
继上次的Spark-shell脚本源码分析,还剩下后面半段.由于上次涉及了不少shell的基本内容,因此就把trap和stty放在这篇来讲述. 上篇回顾:Spark源码分析之Spark Shell(上 ...
- Spark源码分析之Spark-submit和Spark-class
有了前面spark-shell的经验,看这两个脚本就容易多啦.前面总结的Spark-shell的分析可以参考: Spark源码分析之Spark Shell(上) Spark源码分析之Spark She ...
- 【转】Spark源码分析之-deploy模块
原文地址:http://jerryshao.me/architecture/2013/04/30/Spark%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B- ...
- Spark源码分析:多种部署方式之间的区别与联系(转)
原文链接:Spark源码分析:多种部署方式之间的区别与联系(1) 从官方的文档我们可以知道,Spark的部署方式有很多种:local.Standalone.Mesos.YARN.....不同部署方式的 ...
- Spark 源码分析 -- task实际执行过程
Spark源码分析 – SparkContext 中的例子, 只分析到sc.runJob 那么最终是怎么执行的? 通过DAGScheduler切分成Stage, 封装成taskset, 提交给Task ...
- Spark源码分析 – 汇总索引
http://jerryshao.me/categories.html#architecture-ref http://blog.csdn.net/pelick/article/details/172 ...
- Spark源码分析 – Shuffle
参考详细探究Spark的shuffle实现, 写的很清楚, 当前设计的来龙去脉 Hadoop Hadoop的思路是, 在mapper端每次当memory buffer中的数据快满的时候, 先将memo ...
- Spark源码分析 – BlockManager
参考, Spark源码分析之-Storage模块 对于storage, 为何Spark需要storage模块?为了cache RDD Spark的特点就是可以将RDD cache在memory或dis ...
随机推荐
- 【Java】 Scanner类的几个方法
通过 Scanner 类可以获取用户的输入,创建 Scanner 对象的基本语法如下: Scanner sc = new Scanner(System.in); nextInt().next()和ne ...
- MongoDB入门教程一[文档与集合]
MongoDB 是面向集合存储的文档型数据库,其涉及到的基本概念与关系型数据库相比有所不同.举个例子,在关系型数据库中,我们记录一个订单的信息,通常是这样设计表结构的: 设计一个订单基本信息表和一个订 ...
- caffe中根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件 (转载)
见博客:http://blog.csdn.net/u010417185/article/details/52137825
- CTF Writeup 一个专门收集WP的网站
www.ctfwp.com 创建于2019-04-15 致力于收集网上公开writeup,方便大家学习.
- 【运维实战】一次linux日志分割之路——将日志按照每小时进行分割,并按照“日期-小时”格式保存
是这样的,现在需要对nginx的access.log进行按照每小时进行分割,并且最好还要能够以 “日期+时间”的形式,命名保存. 两点,一个是按照每小时进行分割,一个是将日志以“日期+时间”的形式进行 ...
- [ 原创 ] Java基础2--构造方法的继承和重载
1.构造方法的重载是指同一个类中定义不同参数的多个构造方法,已完成不同情况下对象的初始化. 例如: Point(); Point(x); Point(x,y); 2.一个类的若干个构造方法之间可以相互 ...
- 如何离线安装GitHub for windows?
此文献给xp用户和被墙用户. 今天群里(GitHub家园 225932282)有人说GitHub for windows安装不上,错误提示如下,看了下感觉应该是被墙了,我试了试下面的网址,没问题,所以 ...
- Splay-Tree理解
简介 splay tree其实就是不停的旋转,没进行一个操作都要进行旋转:例如,当访问某一个结点的时候,会通过旋转其结点使得该结点变为树根,这样保证其的平均复杂度为O(nlogn); 其的操作包括: ...
- Codeforces Round #356 (Div. 2) E. Bear and Square Grid 滑块
E. Bear and Square Grid 题目连接: http://www.codeforces.com/contest/680/problem/E Description You have a ...
- HDU 5698 瞬间移动 数学
瞬间移动 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5698 Description 有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次 ...