Spark源码解析(一)Spark RPC分析

本文深入探讨Spark的RPC机制,从SparkRPC的演变背景到其实现原理。内容涵盖Spark基于Netty的RPC框架组件,如RpcEndpoint、RpcEndpointRef、RpcEnv和它们在消息传递中的角色。此外,还分析了Dispatcher、Inbox与Outbox在通信中的作用,揭示Spark集群中各个组件如何通过消息交互完成任务调度和数据传输。

通过学习Spark源码为了更深入的了解Spark。主要按照以下流程进行Spark的源码分析,包含了Spark集群的启动以及任务提交的执行流程:

  1. Spark RPC分析
  2. start-all.sh
  3. Master启动分析
  4. Work启动分析
  5. spark-submit.sh脚本分析
  6. SparkSubmit分析
  7. SparkContext初始化

1.Spark RPC分析

1.1.概述

了解Spark分布式集群的执行流程,那就不得不从Spark的网络通信说起,例如:

  • driver和master的通信,比如driver会想master发送RegisterApplication消息
  • master和worker的通信,比如worker会向master上报worker上运行Executor信息
  • executor和driver的的通信,executor运行在worker上,spark的tasks被分发到运行在各个
  • executor中,executor需要通过向driver发送任务运行结果。
  • worker和worker的通信,task运行期间需要从其他地方fetch数据,这些数据是由运行在其他worker上的executor上的task产生,因此需要到worker上fetch数据

总的说来,Spark通信主要存在于两个方面:

  1. 汇集信息,例如task变化信息,executor状态变化信息。
  2.  传输数据,spark shuffle(也就是reduce从上游map的输出中汇集输入数据)阶段存在大量的数据传输。

Spark通信框架版本更迭:

Spark 1.6之前,Spark 的 RPC 是基于 Akaa 来实现的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值