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

  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    redis被攻击,怎么预防
    Redis3.2.12单节点安装
    Linux安装Redis、后台运行、系统自启动
    Redis 密码设置和查看密码
    Redis protected-mode属性解读
    SpringCloud(9)----mysql实现配置中心
    SpringCloud(8)----zuul权限校验、接口限流
  • 原文地址:https://www.cnblogs.com/weijiqian/p/14151723.html
Copyright © 2011-2022 走看看