Spark学习(二) -- Spark整体框架
标签(空格分隔): Spark
还记得上次的wordCount程序嘛?通过这个小程序,我们来一窥Spark的框架是什么样子的。
sc.textFile("/usr/local/Cellar/apache-spark/1.3.0/README.md").flatMap(line => line.split(" ")).map(w => (w, 1)).reduceByKey(_+_).foreach(println)
整个单词统计的过程可以分为4个阶段:1)读取文件;2)单词分割;3)单词计数;4)单词归并。前三步都是非常容易并行的,但最后一步的并行度并不是很高。
RDD
将上面的单词计数操作用另一种形式表示:
Data1 ---Operation1---> Data2 ---Operation2---> Data3 ...... -->DataN
所以,整个过程其实就是在不断的进行数据输入和数据处理。
RDD(Resilient Distributed Dataset),弹性分布式数据集,用来包装数据输入和数据处理,其主要特点是:
- 数据全集被分割为多个正相交的子集,每个子集可以被派发到任一计算节点进行处理;
- 计算的中间结果会被保存。出于可靠性,同一个计算结果会被保存于多个计算节点;
- 如果其中某一数据子集在处理中出现问题,针对该子集的处理会被重新调度进而重新处理。
Operation
Operation有两种类型:Transformation和Action。
- Transformation是领取任务的过程;
- Action则是真正触发执行的过程。
Spark的运行框架
1. 作业提交
Spark在接收到提交的作业后,会进行如下处理:
- RDD之间的依赖性分析。RDD之间形成一个有向无环图,这个依赖关系的分析和判断由DAGScheduler负责;
- 根据DAG的分析结果将一个作业分成多个Stage。划分Stage的一个主要依据就是当前的计算因子输入是否是确定的,如果是则划分在一个Stage中;
- DAGScheduler确定完Stage之后,会向TaskScheduler提交任务集,而TaskScheduler负责将这些任务一一分到集群的计算节点。

2. 集群节点的构成
Spark集群由4个节点构成:Driver, Master, Worker, Executor.
Spark学习(二) -- Spark整体框架的更多相关文章
- Spark学习之Spark调优与调试(7)
Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项. 当创建一个SparkContext时就会创建一个SparkConf实例. 2. ...
- Spark学习之Spark Streaming(9)
Spark学习之Spark Streaming(9) 1. Spark Streaming允许用户使用一套和批处理非常接近的API来编写流式计算应用,这就可以大量重用批处理应用的技术甚至代码. 2. ...
- Spark学习之Spark SQL(8)
Spark学习之Spark SQL(8) 1. Spark用来操作结构化和半结构化数据的接口--Spark SQL. 2. Spark SQL的三大功能 2.1 Spark SQL可以从各种结构化数据 ...
- Spark学习之Spark调优与调试(二)
下面来看看更复杂的情况,比如,当调度器进行流水线执行(pipelining),或把多个 RDD 合并到一个步骤中时.当RDD 不需要混洗数据就可以从父节点计算出来时,调度器就会自动进行流水线执行.上一 ...
- Spark学习(一) Spark初识
一.官网介绍 1.什么是Spark 官网地址:http://spark.apache.org/ Apache Spark™是用于大规模数据处理的统一分析引擎. 从右侧最后一条新闻看,Spark也用于A ...
- Spark学习一:Spark概述
1.1 什么是Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎. 一站式管理大数据的所有场景(批处理,流处理,sql) spark不涉及到数据的存储,只 ...
- Spark学习之Spark Streaming
一.简介 许多应用需要即时处理收到的数据,例如用来实时追踪页面访问统计的应用.训练机器学习模型的应用,还有自动检测异常的应用.Spark Streaming 是 Spark 为这些应用而设计的模型.它 ...
- Spark学习之Spark调优与调试(一)
一.使用SparkConf配置Spark 对 Spark 进行性能调优,通常就是修改 Spark 应用的运行时配置选项.Spark 中最主要的配置机制是通过 SparkConf 类对 Spark 进行 ...
- Spark学习笔记--Spark在Windows下的环境搭建
本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...
- Spark学习笔记--Spark在Windows下的环境搭建(转)
本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...
随机推荐
- magereverse - Magento数据库表结构
Magento数据库表结构相当复杂,250多张表包含了非常多的表关联关系,让刚刚接触Magento的开发者来说真的非常头疼.往往是看到一个产品的各种属性分散在非常多的表中,找不到任何办法来取出它们的数 ...
- python web前端
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- VMware 12 CentOS Minimal 安装VMwareTools 找不到头文件kernelheaders
输入命令: yum install kernel-headers 安装vmware-tools时提示需要kernel headers 输入命令: yum install kernel-devel
- Android JNI 本地开发接口
前言 我们为什么要用JNI --> 高效.扩展 高效:Native code效率高,数学运算,实时渲染的游戏上,音视频处理 (极品飞车,opengl,ffmpeg,文件压缩,图片处理-) 扩展: ...
- 关于针对class自定义new操作符失败的函数处理
#include <iostream> #include <new> using namespace std; class CSaveCurHandler //用于管理new_ ...
- WEB启动时就加载servlet的dopost方法
web启动的时候可以加载servlet的init方法,无法加载dopost方法,如果你需要什么内容在启动的时候执行,可以将内容放到init方法里面,dopost方法,是在客户端使用post请求的时候才 ...
- Java中关于先有鸡还是先有蛋的问题----Class&Object
在Java中,我们常常会看到一个类型:Class.并且在类似Person.class,cache.getClass()等代码中见到它的身影. 众所周知,Class是用来描述一个类的类型,而Object ...
- mysql 触发器示例和注解
-- 格式 CREATE TRIGGER 触发器名称 AFTER|before insert|update|delete ON 触发表 FOR EACH ROW BEGIN insert into 处 ...
- .NET分布式事务处理
在进行数据持久化的时候,我们会经常用到事务处理.一般情况下,ADO.NET中的事务处理就能够满足我们的需要,但是,ADO.NET中的事 务不能同事对多个数据库连接进行原子性的操作:如果在你的业务环境中 ...
- windowsAPI遍历文件夹(速度高于递归)
#region API 遍历文件夹及其子文件夹和子文件 #region 声明WIN32API函数以及结构 ************************************** [DllImpo ...