searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

大数据处理利器Spark介绍

2023-05-25 03:32:14
15
0

简介

     Spark已经形成了一套完整的生态体系,包括 Spark提供的内存计算框架、SQL即席查询(Spark  SQL)、流式计算(Spark  Streaming)、机器学习(MLlib)、图计算(Graph X)等,Spark可以部署在yarn资源管理器上,提供一站式大数据解决方案,可以同时支持批处理、流处理、交互式查询。相比于老一代的大数据处理工具MapReduce具备以下优势:

  • Spark提供更多种数据集操作类型,编程模型比MapReduce更加灵活;
  • Spark提供内存计算,将计算结果直接放在内存中,减少了迭代计算的IO开销,有更高效的运算效率。
  • Spark基于DAG的任务调度执行机制,迭代效率更高;在实际开发中MapReduce需要编写很多底层代码,不够高效,Spark提供了多种高层次、简洁的API实现相同功能的应用程序,实现代码量比MapReduce少很多。

 

常见的Spark概念

  • RDD:是Resilient Distributed Dataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型 ;
  • DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系 ;
  • Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task ;
  • 应用(Application):用户编写的Spark应用程序;
  • 任务( Task ):运行在Executor上的工作单元 ;
  • 作业( Job ):一个作业包含多个RDD及作用于相应RDD上的各种操作;
  • 阶段( Stage ):是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为阶段,或者也被称为任务集合,代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集;

   以上概念之间的联系如下:

    Spark运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的工作节点(Worker Node)、每个应用的任务控制节点(Driver)和每个工作节点上负责具体任务的执行进程(Executor),资源管理器可以自带或使用Mesos/YARN。

    一个应用由一个Driver和若干个作业构成,一个作业由多个阶段构成,一个阶段由多个没有Shuffle关系的任务组成;

    当执行一个应用时,Driver会向集群管理器申请资源,启动Executor,并向Executor发送应用程序代码和文件,然后在Executor上执行任务,运行结束后,执行结果会返回给Driver,或者写到HDFS或者其他数据库中。

Spark运行流程

    SparkContext对象代表了和一个集群的连接:

  1. 首先为应用构建起基本的运行环境,即由Driver创建一个SparkContext,进行资源的申请、任务的分配和监控;
  2. 资源管理器为Executor分配资源,并启动Executor进程;
  3. SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行,并提供应用程序代码;
  4. Task在Executor上运行,把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源;
0条评论
0 / 1000
w****n
3文章数
0粉丝数
w****n
3 文章 | 0 粉丝
w****n
3文章数
0粉丝数
w****n
3 文章 | 0 粉丝
原创

大数据处理利器Spark介绍

2023-05-25 03:32:14
15
0

简介

     Spark已经形成了一套完整的生态体系,包括 Spark提供的内存计算框架、SQL即席查询(Spark  SQL)、流式计算(Spark  Streaming)、机器学习(MLlib)、图计算(Graph X)等,Spark可以部署在yarn资源管理器上,提供一站式大数据解决方案,可以同时支持批处理、流处理、交互式查询。相比于老一代的大数据处理工具MapReduce具备以下优势:

  • Spark提供更多种数据集操作类型,编程模型比MapReduce更加灵活;
  • Spark提供内存计算,将计算结果直接放在内存中,减少了迭代计算的IO开销,有更高效的运算效率。
  • Spark基于DAG的任务调度执行机制,迭代效率更高;在实际开发中MapReduce需要编写很多底层代码,不够高效,Spark提供了多种高层次、简洁的API实现相同功能的应用程序,实现代码量比MapReduce少很多。

 

常见的Spark概念

  • RDD:是Resilient Distributed Dataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型 ;
  • DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系 ;
  • Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task ;
  • 应用(Application):用户编写的Spark应用程序;
  • 任务( Task ):运行在Executor上的工作单元 ;
  • 作业( Job ):一个作业包含多个RDD及作用于相应RDD上的各种操作;
  • 阶段( Stage ):是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为阶段,或者也被称为任务集合,代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集;

   以上概念之间的联系如下:

    Spark运行架构包括集群资源管理器(Cluster Manager)、运行作业任务的工作节点(Worker Node)、每个应用的任务控制节点(Driver)和每个工作节点上负责具体任务的执行进程(Executor),资源管理器可以自带或使用Mesos/YARN。

    一个应用由一个Driver和若干个作业构成,一个作业由多个阶段构成,一个阶段由多个没有Shuffle关系的任务组成;

    当执行一个应用时,Driver会向集群管理器申请资源,启动Executor,并向Executor发送应用程序代码和文件,然后在Executor上执行任务,运行结束后,执行结果会返回给Driver,或者写到HDFS或者其他数据库中。

Spark运行流程

    SparkContext对象代表了和一个集群的连接:

  1. 首先为应用构建起基本的运行环境,即由Driver创建一个SparkContext,进行资源的申请、任务的分配和监控;
  2. 资源管理器为Executor分配资源,并启动Executor进程;
  3. SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行,并提供应用程序代码;
  4. Task在Executor上运行,把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源;
文章来自个人专栏
大数据AI
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0