spark程序运行剖析

写在前面的话

目的:不要别人说个啥你都是一脸懵逼状态,圈子内交流最好用专业术语,不然就会感觉鸡同鸭讲,我最近就碰到这个问题,首先要做的就是我们自己一定要明确这些术语!

一些重要的术语
  • Application
    spark应用程序,说白了,就是用户基于spark api开发的程序,一定是通过一个有main方法的类执行的,比如java开发spark,就是在eclipse中,建立的一个工程

  • Application Jar
    这个就是把写好的spark工程,打包成一个jar包,其中包括了所有的第三方jar依赖包,比如java中,就用maven+assembly插件打包最方便

  • Driver Program
    说白了,就是运行程序中main方法的进程,这就是driver,也叫driver进程

  • Cluster Manager
    集群管理器,就是为每个spark application,在集群中调度和分配资源的组件,比如Spark Standalone、YARN、Mesos等

  • Deploy Mode

  • 部署模式,无论是基于哪种集群管理器,spark作业部署或者运行模式,都分为两种,client和cluster,client模式下driver运行在提交spark作业的机器上;cluster模式下,运行在spark集群中

  • Executor

  • 集群管理器为application分配的进程,运行在worker节点上,负责执行作业的任务,并将数据保存在内存或磁盘中,每个application都有自己的executor

  • Job

  • 每个spark application,根据你执行了多少次action操作,就会有多少个job

  • Stage

  • 每个job都会划分为多个stage(阶段),每个stage都会有对应的一批task,分配到executor上去执行

  • Task

  • driver发送到executor上执行的计算单元,每个task负责在一个阶段(stage),处理一小片数据,计算出对应的结果

  • worker node
    集群中的工作节点,能够运行executor进程,运行作业代码的节点
    代表的是一个工作节点,并不一定就是指代的standalone模式下的Worker进程所在的节点负责启动executor进程,执行task计算任务,实际执行我们写的代码,处理一部分数据节点,也就是集群中的从节点(slave节点),统一叫做worker node

standalone模式下,基于spark的Master进程和Worker进程组成的集群,Worker进程所在节点,也就是Worker节点

yarn模式下,yarn的nodemanager进程所在的节点,也就叫做worker node,工作节点

spark程序两种不同模式运行区别
  • client模式,区别就在于driver启动的位置,你在哪台机器上提交spark application,在那台机器上,就会启动driver进程,直接会去启动一个jvm进程,开始执行你的main类

  • cluster模式,spark application或者叫做spark作业,提交到cluster manager,cluster manager负责在集群中某个节点上,启动driver进程

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值