(1)spark 基础知识

1、Spark 运行方式

        本地模式:一个单独的主机上运行一个JVM;

        集群模式Standalone:多个主机上运行多个JVM;

        通过Yarn、Mesos等给管理;

2、RDD

        RDD是Spark的核心数据结构,通过RDD的依赖关系形成了Spark的调度顺序,即有向无环图,这两个概念是spark最核心等概念。RDD(弹性分布式数据集)有两种来源,分别是:(1)从Hadoop文件系统(或其他与Hadoop兼容的持久化存储系统,如Hive,Hbase...)输入创建(2)从父RDD转换得到新的RDD.

        RDD有两种计算操作算子:Transformation(转换)和Action(行动)。Transformation是延迟计算的,也就是说从一个RDD转换成另一个RDD的转换操作不是马上执行的,需要等到有Actions操作时,才真正触发,包括(map,reduce,join)。Action算子会触发Spark提交作业,并将数据输出到Spark系统,包括(foreach,count,top等)。

        RDD作为一个数据结构,含有许多重要内部属性:(分区,依赖关系(宽依赖、窄依赖),计算逻辑)

                分区列表

                计算每个分片的函数

                对父RDD的依赖列表

                对Key-Value对数据类型RDD的分区器,控制分区策略和分区数

                每个数据分区的地址列表(如HDFS上的数据块的地址)

3、Spark 基本框架

Spark 框架结构

                spark 包括5个主要模块,Spark Core 定义框架核心数据结构和数据操作函数等基础模块,是其他模块的基础;Spark SQL 定义数据操作API;Spark MLlib 内置机器学习库(通常在使用是与H2O等用户友好的机器学习框架相结合);Spark geaphX 图计算框架;;Spark  Streaming 流处理框架。spark依靠自身的standalone和yarn、mesos等实现资源调度。

4、Spark 计算框架


Spark on yarn

            图中共分为三大部分:Spark Driver, Worker, Cluster manager。其中Driver program负责将RDD转换为任务,并进行任务调度。Worker负责任务的执行。YARN负责计算资源的维护和分配。

            Driver可以运行在用户程序中,或者运行在其中一个Worker上。Spark中的每一个应用(Application)对应着一个Driver。这个Driver可以接收RDD上的计算请求,每个动作(Action)类型的操作将被作为一个Job进行计算。Spark会根据RDD的依赖关系构建计算阶段(Stage)的有向无环图,每个阶段有与分区数相同的任务(Task)。这些任务将在每个分区(Partition)上进行计算,任务划分完成后Driver将任务提交到运行于Worker上的Executor中进行计算,并对任务的成功、失败进行记录和重启等处理。

  Worker一般对应一台物理机,每个Worker上可以运行多个Executor,每个Executor都是独立的JVM进程,Driver提交的任务就是以线程的形式运行在Executor中的。如果使用YARN作为资源调度框架的话,其中一个Worker上还会有Executor launcher作为YARN的ApplicationMaster,用于向YARN申请计算资源,并启动、监测、重启Executor。

5、Spark MLlib 架构


Spark MLlib架构

       MLlib 主要包含三个部分:

                 底层基础 :包括 Spark 的运行库、矩阵库和向量库;其中主要依赖数值计算库Breeze和基础线性代数库BLAS。使用时不直接调用这些库,MLlib封装了vector和matrix对象做数据处理对它们进行了封装。类似于numpy等的操作。

                算法库 :目前支持 4 种常见的机器学习问题 : 分类、回归、聚类和协同过滤。包含广义线性模型、推荐系统、聚类、决策树和评估的算法;

                 实用程序 :包括测试数据的生成、外部数据的读入等功能。


6、Spark 程序入口

            启动Spark 以后,可以通过Spark shell 运行相应程序,并通过web服务进行程序监控。有sparkcontxt提供上下文交互环境。在于H2O等可视化工具结合使用时,只需要利用Spark 读入数据,并将数据传输给H2O服务即可。

7、Spark streaming

            Spark streaming对实时数据流进行处理。通过Kafka,flume等获取数据,这里的实时并不是说来一条数据就处理一条数据,而是将流数据离散化处理。在receiver接收到数据后,首先将数据缓存到spark到计算节点中,经过延迟优化(即积累一定量到数据),对这些数据进行统一的批处理。这样一方面把任务拆分到不同节点,同时实现了动态的负载均衡和便于故障恢复。

8、Spark 启动后,系统中会有诸多进程一起工作。在主节点上,有Spark的master、yarn的ResourceManager、和Hadoop的NameNode,SecondNameNode,DataNode。在从节点上,有Spark的worker、Yarn的NodeManager、和Hadoop的DataNode。当然还同时存在JVM进程。

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