2018-10-10

spark基本概念

spark基结构


spark组成部分.jpg

目前Spark由四部分 构成 :Spark SQL、MLlib、Graph X、Spark Streaming.

Spark集群组成

spark集群组成部分.jpg

Spark集群划分 ,主要有驱动程序、集群管理程序,以及各worker节点上的执行程序
Spark应用的主程序称为
1.驱动程序 (driver program),其中包含Spark Context对象,用于连接集群管理程序(cluster manager)。
集群管理程序用于分配集群中的资源。 目前有三 种 :Spark独自的集 群管理程 序、Mesos和YARN。
1.Spark应用的运行过程是 ,SparkContext对象首先连接集群管理程序 2.然后Spark获取集群中各个节点上的执行程序(executor),执行程序是用于计算和存储数据的进程
3.然后 Spark 把代码发送到执行程序
4.最后运行执行程序上的任务。
Spark 目前 支 持 3种 集 群 部 署 模 式 :Standalone 模 式 、ApacheMesos 模式、Hadoop YARN 模式。

(1)Standalone 模式 :即 独立模式 ,使用 Spark 自带的集群管理程序,好处是不需要额外的软件就能运行,配置简单。
(2)Apache Mesos 模式 :需要安装 Mesos资源 管理程序
,Spark 的集群管理就交 给 Mesos 处理了。使用Mesos 的好处是
,可以在 Spark 与其他框架之间或多个Spark 实例之间动态地划分。
(3)Hadoop YARN 模式 : 利用已有 的 Hadoop 集群,让Spark 在
Hadoop 集群中运行,访问 HDFS 文件系统 , 使 用 YARN 资 源 调 度 程 序 。Spark on YARN 是Spark 0.6.0 版本加入的,该模式需要额外的配置参数。

Spark 既可 以 在 单 机 上 运 行 ,也 可 以 在 AmazonEC2 上运行。 Spark 提供了相应的配置文件、启动脚本、结束脚本用于配置、启动、结束 Spark 集群中的 master和 slave。 也提供了相应的 Web 监控系统与日志系统,方便地监控与调试程序。 而且还可以配置 Zookeeper 以保证高可用性。

Spark编程模型


Spark最主要的抽象就是弹性分布式数据集 (Resilient Distributed Datasets,RDD)以及对RDD的并行操作(例如map、filter、groupBy、join)。而且,Spark还支持两种受限 的共享变 量 (shared variables): 广播变量(broadcast variables)和累加变量(accumulators)。

RDD

RDD是只读的对象集合 ,RDD分区分布在集群的节点中。如果某个节点失效, 或者某部分数据丢失,RDD都能重新构建。Spark将创建RDD的一系列转换记录下来, 以便恢复丢失的分区, 这称为血系(lineage)。每次对RDD数据集的操作之后的结果,都可以缓存到内存中,下一个操作可以直接从内存中输入,省去了Map Reduce大量的磁盘操作。RDD只支持粗粒度转换,即在大量记录上执行的单个操作。虽然只支持粗粒度转换限制了编程模型,但RDD仍然可以很好地适用于很多应用,特别是支持数据并行的批量分析应用,包括数据挖掘、机器学习、图算法等,因为这些程序通常都会在很多记录上执行相同的操作。

使用RDD的好处有:

RDD只能从持久存储或通过转换(transformation)操作产生 ,相比于分布式共享内存 (DSM) 可以更高效地实现容错, 对于丢失部分数据分区只需根据它的血系就可重新计算出来, 而不需要做特定的检查点(checkpoint)。

RDD的不变性,可以实现类Map Reduce的预测式执行。

RDD的数据分区特性,可以通过数据的本地性来提高性能,这与Map Reduce是一样的。

RDD是可序列化的,当内存不足时可自动改为磁盘存储,把RDD存储于磁盘上,此时性能会有大的下降但不会差于现有的Map Reduce。

在Spark中,RDD是一个Scala对象,对RDD的并行操作即是调用对象上的方法。有四种方法创建一个RDD:

(1)通过一个文件系统中的文件创建 ,例如常见的HDFS文件。

(2)通过并行化Scala集合 ,即把一个集合切分成很多片,然后发送到各种节点。

(3)通过对已有的RDD执行转换操作 ,可以得到一个新的RDD。例如通 过flat Map可以把类 型1的RDD转换成类型2的RDD。

(4)通过把RDD持久化。RDD默认是惰性的 ,即只有当RDD在执行并行操作时,RDD才被物化, 执行完后即被释放。用户可以通过显式的cache或save操作使RDD持久化。

2.2 并行操作

作用在RDD上的并行操作有两种:转换(transformation)和动作 (action),转换返回一个新的RDD,动作返回一个值或把RDD写到文件系统中。转换是惰性的, 即从一个RDD转换成另一个RDD不是马上执行的,Spark只是记录这样的操作,并不执行,等到有动作操作时才会启动计算过程。常见的转换(transformation)如表1所示,常见的动作(action)如表2所示。

注:有些操作只对 key 有效,例如 join、group By Key,reduce By Key。 除了 这些操作以外 ,用户还可以请求将RDD 缓存起来。 而且,用户还可以通过 Partitioner 类获取 RDD 的分区顺序, 然后将另一个 RDD 按照同样的方式分区。

2.3 共享变量

通常情况下,Spark中的map、filter、reduce等函数的参数是一个函数(闭包),运行时这些函数参数被复制到各个worker节点上,互不干扰。Spark还提供了共享变量用于其他用途,常见的有两种:

(1)广播变量 (broadcast variables): 对于大量的只读数据,当有多个并行操作时,最好只复制一次而不是每执行一次函数就复制一次到各个worker节点。广播变量就是用于这种情况, 它只是包装了一下原有的数据,然后只复制一次到各worker节点。

(2)累加变量(accumulators):累加变量只能用于关联操作,并且只有驱动程序才能读取。只要某个类型有“add”操作和“0”值都可以是累加变量。累加变量经常用于实现Map Reduce的计数器,而且由于是只加性的,所以很容易实现容错性。

来源[知网](http://kns.cnki.net/KXReader/Detail?dbcode=CJFD&filename=XDJS201508014&UID=WEEvREdxOWJmbC9oM1NjYkZCbDZZZ2drSDRFS3dTYVZJdm52VFc0K3hBQjQ%3d%24R1yZ0H6jyaa0en3RxVUd8df-oHi7XMMDo7mtKT6mSmEvTuk11l2gFA!!&autoLogin=0

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容