Spark的一个经典问题(1个Core5个Executor和5个Core1个Executor有什么区别)

简介: Spark的一个经典问题(1个Core5个Executor和5个Core1个Executor有什么区别)

Spark的一个经典问题(1个Core5个Executor和5个Core1个Executor有什么区别)

一、问题分析

1.1先思考两个问题

1个Core VS 5个Core 有什么区别?在spark中如何用到Core

1个Executor VS 5个Executor 有什么区别?在spark中如何使用Executor?

1.2再思考两个问题

什么是IO密集?

什么是计算密集?

二、上述两种方式 如何选择

案例1

数据量10亿条,什么逻辑运算都不做处理,只是写到hdfs中,该选择哪种方式?

逻辑运算很少,说明不需要很多的Core,但是数据量很大,要写到hdfs中,io就成为了本案例的瓶颈,这种场景属于IO密集

那么就应该选择 1个core5个executor

这里举一个形象的例子,一个牧羊人把十万只羊赶到10公里外的羊圈,一次可以赶1万只,要赶十次,如果牧羊人可以一次赶十个一万只(十万只),那么就需要赶一次!

案例2

数据量1千条,逻辑运算超级复杂,该选择哪种方式?

逻辑运算超级复杂,如果想要加快计算,那么就需要更多的资源,cpu就成了本案例的瓶颈,这种场景属于计算密集

那么就应该选择1个core5个executor

这里举一个形象的例子,一个牧羊人给十万只羊剪羊毛,十万个牧羊人给十万只羊剪羊毛

三、从Spark任务提交流程说起

我们提交spark任务的时候一般是:

spark-submit 
--master yarn 
--deploy-mode cluster 
--class com.leqee.sparkstream.stream.DMLStreaming 
--driver-cores 1 
--driver-memory 1G 
--num-executors 2 
--executor-cores 3 
--executor-memory 4G 
--name StreamA
--queue stream 
--conf "spark.executor.memoryOverhead=2G" 
xxx.jar

那么这里面我们就要明确几个参数

executor-cores 这个是每个executor申请的core

num-executor 这个任务一共申请的executor个数

四、涉及到的RDD原理

根据上述有一个问题

那么我们的task哪里去了?

spark 中task是根据分区来决定的,那么分区是怎么来的呢?

RDD的特点就是分区,容错,弹性。。。

那么spark的task是在executor中执行的,task是并发的,也就是说我们给少了core可以触发并发,

但是executor是并行的,每个executor分布在不同的NM(yanr模式)

相关文章
|
2月前
|
分布式计算 数据处理 Apache
Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
【10月更文挑战第10天】Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
291 1
|
7月前
|
设计模式 SQL 分布式计算
Spark Day06:Spark Core之Spark 内核调度和SparkSQL快速入门
Spark Day06:Spark Core之Spark 内核调度和SparkSQL快速入门
79 0
|
7月前
|
SQL 分布式计算 Hadoop
干翻Hadoop系列文章【02】:Hadoop、Hive、Spark的区别和联系
干翻Hadoop系列文章【02】:Hadoop、Hive、Spark的区别和联系
|
1月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
69 3
|
2月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
【10月更文挑战第5天】随着大数据处理需求的增长,Apache Spark 成为了广泛采用的大数据处理框架。本文详细解析了 Spark Standalone 与 YARN 两种常见部署模式的区别,并通过示例代码展示了如何在不同模式下运行 Spark 应用程序。Standalone 模式自带轻量级集群管理,适合小规模集群或独立部署;YARN 则作为外部资源管理器,能够与 Hadoop 生态系统中的其他应用共享资源,更适合大规模生产环境。文章对比了两者的资源管理、部署灵活性、扩展性和集成能力,帮助读者根据需求选择合适的部署模式。
34 1
|
6月前
|
资源调度 分布式计算 监控
Spark Standalone与YARN的区别?
【6月更文挑战第17天】Spark Standalone与YARN的区别?
364 57
|
4月前
|
缓存 分布式计算 数据处理
|
4月前
|
分布式计算 Serverless 数据处理
|
6月前
|
分布式计算 Hadoop 大数据
Spark与Hadoop的区别?
【6月更文挑战第15天】Spark与Hadoop的区别?
72 8
|
7月前
|
分布式计算 大数据 数据处理
【Flink】Flink跟Spark Streaming的区别?
【4月更文挑战第17天】【Flink】Flink跟Spark Streaming的区别?