李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
Spark核心概念
Leefs
2021-03-07 AM
1128℃
0条
# 12.Spark核心概念 ### 一、Executor与Core Spark Executor 是集群中运行在工作节点(Worker)中的一个 JVM 进程,是整个集群中 的专门用于计算的节点。在提交应用中,可以提供参数指定计算节点的个数,以及对应的资 源。这里的资源一般指的是工作节点 Executor 的内存大小和使用的虚拟 CPU 核(Core)数量。 应用程序相关启动参数如下: | 名称 | 说明 | | ----------------- | -------------------------------------- | | --num-executors | 配置 Executor 的数量 | | --executor-memory | 配置每个 Executor 的内存大小 | | --executor-cores | 配置每个 Executor 的虚拟 CPU core 数量 | ### 二、并行度(Parallelism) 在分布式计算框架中一般都是多个任务同时执行,由于任务分布在不同的计算节点进行 计算,所以能够真正地实现多任务并行执行,记住,这里是并行,而不是并发。这里我们将 整个集群并行执行任务的数量称之为并行度。那么一个作业到底并行度是多少呢?这个取决 于框架的默认配置。应用程序也可以在运行过程中动态修改。 ### 三、有向无环图(DAG) ![12.Spark核心概念01.jpg](https://lilinchao.com/usr/uploads/2021/03/3734178960.jpg) 大数据计算引擎框架我们根据使用方式的不同一般会分为四类,其中第一类就是 Hadoop 所承载的 MapReduce,它将计算分为两个阶段,分别为 Map 阶段 和 Reduce 阶段。 对于上层应用来说,就不得不想方设法去拆分算法,甚至于不得不在上层应用实现多个 Job 的串联,以完成一个完整的算法,例如迭代计算。 由于这样的弊端,催生了支持 DAG 框 架的产生。因此,支持 DAG 的框架被划分为第二代计算引擎。如 Tez 以及更上层的 Oozie。这里我们不去细究各种 DAG 实现之间的区别,不过对于当时的 Tez 和 Oozie 来说,大多还是批处理的任务。接下来就是以 Spark 为代表的第三代的计算引擎。第三代计算引擎的特点主要是 Job 内部的 DAG 支持(不跨越 Job),以及实时计算。 这里所谓的有向无环图,并不是真正意义的图形,而是由 Spark 程序直接映射成的数据 流的高级抽象模型。简单理解就是将整个程序计算的执行过程用图形表示出来,这样更直观, 更便于理解,可以用于表示程序的拓扑结构。 DAG(Directed Acyclic Graph)有向无环图是由点和线组成的拓扑图形,该图形具有方向,不会闭环。 ### 四、提交流程 所谓的提交流程,其实就是我们开发人员根据需求写的应用程序通过 Spark 客户端提交 给 Spark 运行环境执行计算的流程。在不同的部署环境中,这个提交过程基本相同,但是又有细微的区别,我们这里不进行详细的比较,但是因为国内工作中,将 Spark 引用部署到 Yarn 环境中会更多一些,所以本课程中的提交流程是基于 Yarn环境的。 ![12.Spark核心概念02.jpg](https://lilinchao.com/usr/uploads/2021/03/3497401286.jpg) Spark 应用程序提交到 Yarn 环境中执行的时候,一般会有两种部署执行的方式:Client 和 Cluster。两种模式主要区别在于:Driver 程序的运行节点位置。
标签:
Hadoop
,
Spark
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://www.lilinchao.com/archives/1220.html
上一篇
Spark运行架构
下一篇
Scala总结(一)
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
43
标签云
Python
Java阻塞队列
ClickHouse
工具
锁
MyBatis-Plus
HDFS
Quartz
Stream流
哈希表
Tomcat
Spark Streaming
MySQL
Golang
CentOS
MyBatisX
BurpSuite
散列
国产数据库改造
微服务
nginx
稀疏数组
递归
Nacos
前端
Beego
Hadoop
Livy
Yarn
Map
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞