ITPub博客

首页 > 数据库 > 数据库开发技术 > 三分钟带你了解Spark简介及架构设计

三分钟带你了解Spark简介及架构设计

原创 数据库开发技术 作者:3分钟秒懂大数据 时间:2021-06-19 19:31:29 0 删除 编辑

关注并标星 3分钟秒懂大数据

每天1次,打卡阅读

更快更全面获取大数据技术博客


1、Spark 简介


Spark是加州大学伯克利分校通用分布式内存计算引擎
Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集,具有以下特点:
1.运行速度快:Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100倍。
2.易用性好:Spark不仅支持Scala编写应用程序,而且支持Java和Python等语言进行编写,特别是Scala是一种高效、可拓展的语言,能够用简洁的代码处理较为复杂的处理工作。
3.通用性强:Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理。

4.随处运行:Spark具有很强的适应性,能够读取HDFS、Cassandra、HBase、S3和Techyon为持久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成Spark应用程序的计算。

Spark 模块划分:

        核心模块上衍生了SQL、MLlib、Streaming、GraphX

       


Spark基础模块:Spark-Core;

Spark处理结构化数据的模块:Spark-SQL;
Spark流处理模块:Spark-Streaming;
Spark机器学习模块:Spark-MLIib;
Spark图计算模块:Spark-GraphX;
Spark-Core正如其名,是整个Spark中最核心的模块,它提供了基于RDD(后文介绍)的通用计算框架,使得整个spark能够在一套框架内进行计算,其Spark-Core上层的Spark-SQL,Spark-Streaming,Spark-MLIib,Spark-GraphX所涉及的计算均基于Spark-Core。


2、Spark 架构


Spark 架构主要由以下几部分组成:

        服务架构集群和资源管理 Master / Yarn Application Master

        工作节点 Work / Node Manager

        任务调度器 Driver

        任务执行器 Executor


架构图


运行原理如下:

        1、Spark 集群启动后,Work向Master注册信息;

        2、Spark-submit命令提交程序后,Driver和Application也会向Master注册信息;

        3、创建SparkContext对象,主要是包含DAGScheduler和TaskScheduler;

        4、Driver把Application信息注册给 Maste后,Master会根据App信息去Work 节点启动Executor

        5、Executor内部会创建运行task的线程池,然后把启动的Executor反向注册给Dirver;

        6、DAGScheduler:负责把Spark作业转换成 DAG(有向无环图),根据宽窄依赖切分Stage,然后把 TaskSet的形式发送个给TaskScheduler, DAGScheduler还会处理由于Shuffle数据丢失导致的失败;

        7、TaskScheduler:维护所有 Task,分发Task给各个节点的Executor(根据数据本地化策略分发)监控task的运行状态,负责重试失败的task;

         8、所有task运行完成后,SparkContext 向Master注销,释放资源。


End 

 找各类大数据技术文章,就来

<3分钟秒懂大数据>

随时更新互联网大数据组件内容

专为学习者提供技术博文

快和身边的小伙伴一起关注我们吧!

原文作者:3分钟秒懂大数据;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-06-15

  • 博文量
    98
  • 访问量
    42101