博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark(二):简单了解Spark架构与运行逻辑
阅读量:6092 次
发布时间:2019-06-20

本文共 1245 字,大约阅读时间需要 4 分钟。

  hot3.png

一:Spark的架构。

    1.  Driver:运行Application的main()函数并且创建SparkContext。

    2.  Client:用户提交作业的客户端。

    3.  Worker:集群中任何可以运行 Application 代码的节点,运行一个或多个 Executor

                        进程。

    4.  Executor :运行在 Worker 的 Task 执行器, Executor 启动线程池运行 Task,并且

                           负责将数据存在内存或者磁盘上。每个 Application 都会申请各自的 Executor                             来处理任务。

    5.  SparkContext:整个应用的上下文,控制应用的生命周期。

    6.  RDD: Spark 的基本计算单元,一组 RDD 形成执行的有向无环图 RDD Graph。

    7.  DAG Scheduler:根据 Job 构建基于 Stage 的 DAG 工作流,并提交 Stage 给                                                           TaskScheduler。

    8.  TaskScheduler:将 Task 分发给 Executor 执行。

    9.  SparkEnv:线程级别的上下文,存储运行时的重要组件的引用。

 

二:运行逻辑。

    1.  Spark 作业提交流程

        如下图,Client提交应用,Master找到一个Worker启动Driver,Driver向Master或者资源管理器申请资源,之后将应用转化为RDD有向无环图,再由DAGScheduler将RDD有向无环图转化为Stage的有向无环图提交给TaskScheduler,由TaskScheduler提交任务给Executor进行执行。任务执行的过程中其他组件在协同工作确保整个应用顺利执行。

        

 

    2.  Spark 作业运行逻辑。

        如下图,在 Spark 应用中,整个执行流程在逻辑上运算之间会形成有向无环图。Action 算子触发之后会将所有累积的算子形成一个有向无环图,然后由调度器调度该图上的任务进行运算。 Spark 的调度方式与 MapReduce 有所不同。 Spark 根据 RDD 之间不同的依赖关系切分形成不同的阶段( Stage),一个阶段包含一系列函数进行流水线执行。图中的 A、 B、 C、 D、 E、 F,分别代表不同的 RDD, RDD 内的一个方框代表一个数据块。数据从 HDFS 输入 Spark,形成 RDD A 和 RDD C, RDD C 上执行 map 操作,

转换为 RDD D, RDD B 和 RDD E 进行 join 操作转换为 F,而在 B 到 F 的过程中又会
进行 Shuff le。最后 RDD F 通过函数 saveAsSequenceFile 输出保存到 HDFS 中。

    

 

 

RDD: 弹性分布式数据集,  将在下一篇文章中简单概述:

                ing..........

资料文献: 来自 Spark大数据分析实战。

 

转载于:https://my.oschina.net/gently/blog/686231

你可能感兴趣的文章
了解SYSDATE函数
查看>>
MySQL Query Analyzer查询分析器
查看>>
nagios全攻略(一)---准备阶段
查看>>
Windows 8 - 构建更健康的存储
查看>>
试验一下
查看>>
借助宁盾,搞定滴滴出行双因素认证解决方案
查看>>
Linux常用Debug命令
查看>>
Android4.4的zygote进程
查看>>
android 同步联系人
查看>>
27. 文件系统——编译安装源码格式的rpm包(src.rpm)
查看>>
IOS atomic与nonatomic,assign,copy与retain的定义和区别
查看>>
NO2
查看>>
rsync非典型运用
查看>>
LAMP架构搭建与优化(3.3-3.5)
查看>>
使用云祺虚拟机备份软件瞬时恢复Redhat RHV/Ovirt虚拟机
查看>>
中国首个 SaaS 模式的云告警平台安卓版 APP 上线
查看>>
Centos7搭建yum本地源
查看>>
我的友情链接
查看>>
mysql 主从分离 读写分离(mysql-proxy)
查看>>
linux笔记 1-11-系统日志之时间同步
查看>>