Spark集群概览

北风网spark学习笔记

Spark集群概览

Spark集群架构

  • spark程序每次提交就是一个作业,提交到多个executor进程上去,多个进程并行运行作业

第一步

  • 一段程序,spark代码,里面肯定是有main方法的,比如说是java/scala,运行这个代码,代码一旦跑起来,一定是运行在一个进程里面的
  • 进程会去执行main方法中的代码
  • 进程,程序跑起来的进程,通常来说就是jvm进程,java虚拟机进程,就是我们的driver进程,也就是driver,也可以叫Driver Program
  • executor进程会运行在多个节点上面
  • 在某一个节点会运行我们的driver进程
  • Sparkcontext,就是我们自己在代码里创建的负责调度我们的整个spark作业的运行

第二步

  • spark集群管理器,目前来说,支持的有Spark Standalone、YARN、Mesos,但是国内常用的,也就只有Spark Standalone和YARN
  • SparkContext,会跟集群管理器去申请资源,申请启动一些executor进程
  • 集群管理器主要就负责在各个节点上,给spark作业启动一批executor进程

第三步

  • 启动executor进程

第四步

  • driver会将我们的工程jar发送到所有的executor进程中,这样呢,每个进程,就都有了可以执行的spark代码

第五步

  • 其实driver,sparkcontext对象,会根据spark代码,创建一批一批的task,最小计算单元;比如说,1000个task,100个executor进程,会将task分发到executor进程中去执行;每个executor进程执行10个task
  • 每个task,都会执行本地jar包中的相同的一段代码,但是,每个task处理不同的数据
  • 比如说,对于hdfs文件,每个task处理一个hdfs block,hdfs block会对应,rdd的一个partition,一个task就处理一个partition
  • 就做到了大量task并行执行,每个task就处理一小片数据,速度很快

Spark集群架构的一些说明

  • 每个spark application,都有属于自己的executor进程;绝对不可能出现多个spark application共享一个executor进程的
  • executor进程,在整个spark application运行的生命周期内,都会一直存在,不会自己消失
  • executor进程,最主要的,就是使用多线程的方式,运行SparkContext分配过来的task,来一批task就执行一批,一批执行完了,再换下一批task执行
  • spark application,跟集群管理器之间,是透明的,不管你是哪个集群管理器,我就知道,我找你就可以申请到executor进程就好了
  • 所以说,就算在一个能够容纳其他类型的计算作业的集群管理器中,也可以提交spark作业,比如说YARN、Mesos这种
  • 一般都是用YARN作为大数据计算作业管理器的,包括mapreduce、hive、storm和spark,统一在yarn上面运行,统一调度和管理公司的系统资源
  • driver(其实也就是咱们的main类运行的jvm进程),必须时刻监听着属于它这个spark application的executor进程发来的通信和连接
  • 而且driver除了监听,自己也得负责调度整个spark作业(你自己写的spark代码)的调度和运行,也得大量跟executor进程通信,给他们分派计算任务
  • 所以driver在网络环境中的位置,还是很重要的,driver尽量离spark集群得近一些
  • 上面说了,driver要调度task给executor执行,所以driver最好和spark集群在一片网络内
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值