大数据组件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,才会删除数据。不然重试

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的切分等造成的元数据变动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱肉肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值