Spark 基本概念

发布于:2022-12-12 ⋅ 阅读:(601) ⋅ 点赞:(0)

 #  官网部分解释 Cluster Mode Overview - Spark 3.3.0 Documentation

Application:指的是用户编写的Spark应用程序/代码, 一个完整的main方法程序,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码,

  如main方法中有WordCount代码有哪些命令会产生一个Application

  • spark/bin/pyspark 【输入exit()就退出】

  • spark/bin/spark-submit 【main方法跑完就退出】

  • spark/bin/spark-shell 【输入:quit就退出】

  • spark/bin/spark-sql 【输入exit; 就退出】

  • 在Pycharm中写完代码,右键执行run

  • spark/sbin/start-thriftserver.sh

  • 只要上面的命令都运行,就可以在webui页面查看运行情况。(一般运行时页面端口是4040,也可能会轮询到4041等)

  • 只要上面的命令都运行完毕或强行突出,那么Application就结束。同时webui运行时页面也退出。可以去Spark历史日志页面查看,端口是18080。 

Driver:Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等;

Executor:是运行在工作节点Worker Node上的进程,负责运行任务,并为应用程序存储数据,是执行分区计算任务的进程,

执行由Driver发送过来的lambda或def函数,分布式代码

  • 比如 rdd1.map(lambda x:x+1) 其中的lambda函数会被作为task分发到【Executor的core】上运行。一个RDD的分区有多少个,则就有多少个task,他们lambda逻辑一样,但计算的数据块不一样。

SparkContext: 任何Spark 的Application必须有一个SparkContext上下文, Spark运行时的上下文环境。旗下自动创建了2个对象,TaskScheduler和DAGScheduler;

Cluster Manager:指的是在集群上获取资源的外部服务,Standalone模式下由Master负责,Yarn模式下ResourceManager负责;

Worker Node:工作节点,是拥有CPU/内存的机器,是真正干活的节点,对于Standalone模式,就是Worker进程,对于Yarn模式就是NodeManager进程;

RDD:Resilient Distributed Dataset弹性分布式数据集,是分布式内存的一个抽象概念;

DAG:Directed Acyclic Graph有向无环图,从加载数据到Action输出操作的计算链条,形成的RDD的执行流程图---静态的图 ,反映RDD之间的依赖关系和执行流程;

Job:作业,按照DAG执行就是一个作业,Job==DAG;

Stage:阶段,是作业的基本调度单位,同一个Stage中的Task可以并行执行,多个Task组成TaskSet任务集,也是DAG中,根据宽依赖划分出来的一个个的执行阶段 ;

Task:任务,运行在Executor上的工作单元,1个Task计算1个分区,包括pipline上的一系列操作,同一个Stage中的多个Task可以并行执行(每一个Task由线程执行),所以也可以这样说:Task(线程)是运行在Executor(进程)中的最小单位 ;

 TaskSet:任务集,就是同一个Stage中的各个【Task】组成的集合。


网站公告

今日签到

点亮在社区的每一天
去签到