HDFS之Bookkeeper工作原理分析

本文分析了HDFS使用Bookkeeper实现高可用性的背景、设计方案,包括写日志、读日志机制和数据恢复流程。Bookkeeper通过多副本和一致性算法确保数据可靠性,读写操作涉及Zookeeper协调,Bookie节点存储并处理数据。
摘要由CSDN通过智能技术生成

1.前言

1.1背景

    自从hadoop2版本开始,社区引入了NameNode高可用方案。NameNode主从节点间需要同步操作日志来达到主从节点元数据一致。最初业界均通过NFS来实现日志同步,大家之所以选择NFS,一方面因为可以很方便地实现数据共享,另外一方面因为NFS已经发展20多年,已经相对稳定成熟。

虽然如此,NFS也有缺点不能满足HDFS的在线存储业务:网络单点及其存储节点单点。业界提供了数据共享的一些高可用解决方案,但均不能很好地满足目前HDFS的应用场景。

方案

网络单点

存储单点

备注

Mysql HA

数据有丢失风险

Drbd+heartbeat+NFS

脑裂;数据有丢失风险

Keepalive+NFS

数据有丢失风险

        为了满足共享日志的高可用性,社区引入bookkeeper。bookkeeper由yahoo开发,实现了读写高可用性,使HDFS达到真正的高可用性成为可能。

1.2.术语和定义

<

术语和定义

解释

Entry

主节点写的每一个日志对象则为一个entry

Ledger

一个ledger由entry集合组成,每一个日志段对应一个ledger,相同日志段追加edits即为向相应的ledger追加entry

Bookkeeper client

在HDFS中即为namenode

Bookie

一个bookkeeper的存储服务,存储了bookkeeper的write ahead日志,及其数据(ledgers)内容

Metadata server

由zookeeper充当bookkeeper的元数据服务器,在zk中存储了ledger相关元数据,edits元数据,及其bookie相关元数据

Ensemble

即为bookie可用的最小的节点数量;该参数应该大于等于quorums

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值