zoukankan      html  css  js  c++  java
  • Spark的RPC

    Spark RPC

    什么是RPC

    在Spark中很多地方都涉及网络通信,比如Spark各个组件间的消息互通、用户文件与Jar包的上传、节

    点间的Shuffle过程、Block数据的复制与备份等。

    如果把分布式系统(HDFS, HBASE,SPARK等)比作一个人,那么RPC可以认为是人体的血液循环系

    统。它将系统中各个不同的组件(如HBase中的master, Regionserver, client)联系了起来。同

    样,在spark中,不同组件像driver,executor,worker,master(stanalone模式)之间的通信也是

    基于RPC来实现的。

    Spark 是一个 通用的分布式计算系统,既然是分布式的,必然存在很多节点之间的通信,那么 Spark

    不同组件之间就会通过 RPC(Remote Procedure Call)进行点对点通信。

    总结

    1. 汇集信息,例如task变化信息,executor状态变化信息。

    2. 传输数据,spark shuffle(也就是reduce从上游map的输出中汇集输入数据)阶段存在大量的数据传

    输。

    Spark RPC 通信框架版本更迭

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

    Spark1.6 后,Spark 借鉴 Akka 的设计自己实现了一个基于 Netty 的 rpc 框架。

    Akka 在 Spark 2.0.0 版本中被移除了

    在 Spark 2.0.0 使用的是基于Spark 内置 RPC 框架的NettyStreamManager。

    Spark RPC 组成

    1. RpcEndPonit 和RpcCallContext

    2. RpcEndpointRef

    3. RpcEnv 和NettyRpcEnv

    4. Dispacher与Inbox与Outbox

  • 相关阅读:
    每天更新股票日数据
    爬取赶集网类似数据的几个小技巧
    爬取赶集网二手物品下所有物品的信息
    web.xml常用元素
    web.xml中JSP配置及 EL表达式
    JSP 隐藏对象
    第四章 JSP语法
    1.JSP 简介及工作原理
    js闭包
    面试心经之题目二
  • 原文地址:https://www.cnblogs.com/weijiqian/p/14151723.html
Copyright © 2011-2022 走看看