• 大数据组件RPC/大数据组件和zookeeper关系思考总结


    RPC总结

    kafka 模仿netty自己实现
    hbase/hdfs 用netty
    flink/spark 老版本 akka 新版本 netty

    hadoop 是大量数据传输用http,常规远程调用用hadoop RPC

    主从NameNode的镜像备份和合并的数据传输通过http形式,大量数据传输用http
    简单的方法调用用hadoop RPC,如获取文件契约(类似获取文件的写锁)
    
    额外简单提及一下:
    NameNode不会直接操作DataNode,主要通过DataNode主动通过周期性发送心跳给NameNode,
    然后NameNode返回响应指令给DataNode。
    某个client或dataNode想访问某个dataNode,都需要先和NameNode通信获取主机名端口号。
    DataNode启动后开放一个(RPC)socket服务,等待别人调用
    
    DataNode写流程
    DataNode对NameNode心跳保持文件契约和续约
    pipeline数据管道流程,减小客户端压力
    有数据容错,收到数据传输成功的ack,才会删除数据。不然重试
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    Zookeeper关系

    凡是涉及到主从的都是需要使用zookeeper来实现的

    hadoop
    Zookeeper负责NameNode主从选举和切换,DN同时向NN们回报block清单

    kafka
    1 zk负责主从副本的选举,记录元数据信息
    2 主副本监听zk元数据的变化(即如后续用户修改了分区数量等问题)并作更新,然后从副本做元数据同步

    kafka 主副本不需要动态修改元数据信息。因为分区数量,副本数量多少等问题是kafka启动时就设定好的,是静态的不是动态的,数据只需要根据hash等规则固定的打散写入不同的副本中即可

    hbase
    1 zk负责master主从选举,记录元数据信息
    2 hbase 和 kafka 不一样,因为涉及数据的动态文件合并/切分/GC等,元数据不是固定不变的。所以hbase需要加入master角色来负责做数据的负载均衡等问题,并更新到zookeeper中。
    3 master不和RegionServer集群通讯,rs集群和zk汇报信息,master只监听zk子节点的变化即可。即如集群添加一个rs,子节点会增加一个,master则能够感知到 (这点和kafka主副本功能类似)

    现象总结:单主多从,单主节点宕机,也就是当Master不存在时,依然支持数据的读写。但是 1 不能再建表,修改表结构 2 不能再处理如region的切分等造成的元数据变动

  • 相关阅读:
    WebDAV之葫芦儿·派盘+i简记
    SAP ABAP OData 服务如何支持删除(Delete)操作试读版
    一文理解GIT的代码冲突
    Kratos战神微服务框架介绍
    IT项目管理必备软件,这10款精心整理的项目管理工具请收好!
    cnpm安装步骤
    vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set
    Websocket在Java中的实践——最小可行案例
    液压比例阀放大器比例控制器比例阀放大板
    elasticsearch系列-ES对多个字段聚合,select A,B,COUNT() from table group by A,B
  • 原文地址:https://blog.csdn.net/weixin_40503364/article/details/125889737