GFS&Chubby&BigTable三者定义详解&相互关系


叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
在这里插入图片描述

一、GFS & Chubby & BigTable 定义

1、关于GFS

GFS (Google 文件系统)
GFS 也就是 google File System,Google公司为了存储海量搜索数据而设计的专用文件系统。


GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
它运行于廉价的普通硬件上,并提供容错功能。
它可以给大量的用户提供总体性能较高的服务。

GFS将系统节点分为三类角色:

在这里插入图片描述

GFS的新颖之处并不在于它采用了多么令人惊讶的新技术,而在于它采用廉价的商用计算机集群构建分布式文件系统,在降低成本的同时经受了实际应用的考验。

一个GFS包括一个主服务器(master)和多个块服务器(chunk server),这样一个GFS能够同时为多个客户端应用程序(Application)提供文件服务。

在这里插入图片描述

文件被划分为固定的块,由主服务器安排存放到块服务器的本地硬盘上。主服务器会记录存放位置等数据,并负责维护和管理文件系统,包括块的租用、垃圾块的回收以及块在不同块服务器之间的迁移。此外,主服务器还周期性地与每个块服务器通过消息交互,以监视运行状态或下达命令。应用程序通过与主服务器和块服务器的交互来实现对应用数据的读写,应用与主服务器之间的交互仅限于元数据,也就是一些控制数据,其他的数据操作都是直接与块服务器交互的。这种控制与业务相分离的架构,在互联网产品方案上较为广泛,也较为成功。

2、关于Chubby

Google Chubby是一个分布式锁服务,Chubby底层一致性实现就是以Paxos为基础的。

Chubby是一个面向松耦合分布式系统的锁服务,通常用于为一个由大量小型计算机构成的松耦合分布式系统提供高可用的锁服务。
一个分布式锁服务的目的是允许他的客户端进程同步彼此的操作,并对当前所处环境的基本状态信息达成一致。

最典型的场景是进行服务器的Master选举GFS使用Chubby来实现对GFS Master服务器的选举。

系统结构:
在这里插入图片描述
一个典型的Chubby集群,或者叫Chubby cell,通常由5台服务器组成。这些副本服务器采用Paxos协议,通过投票方式决定一个服务器作为Master。一旦一个服务器成为Master,Chubby会保证一段时间其他服务器不会成为Master,这段时间被成为租期。在运行过程中,Master服务器会不断续租,如果Master服务器发生故障,余下的服务器会选举新的Master产生新的Master服务器。

在实际运行中,只有Master服务器才能对数据进行写操作,
其他服务器使用Paxos协议从Master服务器上同步数据库数据的更新。

Chubby客户端会向所有服务器轮询该服务器是否为Master服务器,在询问过程,那些非Master服务器会将Master服务器标识反馈给客户端(存储小数据),可以非常快的定位到Master。

客户端定位到Master后,所有的请求都会发到Master上,针对写请求,Chubby Master会采用一致性协议将其广播到所有副本服务器,并且在过半机器接受请求后,再响应客户端。对于读请求,Master服务器单独处理即可。

在Chubby运行过程中,Master服务器会周期性轮询DNS列表,会很快感知到服务器地址变更。集群内部其他副本服务器通过复制获得最新服务器地址列表。

关于Chubby详细参见博文:
https://www.jianshu.com/p/3ce17952e4f3

3、关于BigTable

Bigtable 是 Goole 开发的基于 GFS 和 Chubby 的分布式存储系统。

Bigtable分布式数据存储系统是Google为其内部海量的结构化数据开发的云存储技术,是Google的第三项云计算关键技术,是所有云时代分布式存储系统的开发蓝本,已经在超过60个Google的产品和项目上得到了应用 。

Bigtable的设计是为了能可靠地处理PB级的海量数据,使其能够部署在千台机器上Bigtable具有高可靠性、高性能、可伸缩等特性,借鉴了并行数据库和内存数据库的一些特性,但Bigtable提供了一个完全不同接口。Bigtable不支持完整的关系数据模型,而是为用户提供了简单的数据模型,使客户可以动态控制数据的分布和格式

Bigtable是一个稀疏、分布式、持久化存储的多维有序映射表,
表的索引是行关键字、列关键字和时间戳 。

Bigtable中存储的表项都是未经解析的字节数组,其数据模型如下 :

 (row:string,column:string, time:int64)→string

在这里插入图片描述

选定该数据模型,是在仔细分析了Bigtable系统的种种用途之后决定的 [1] 。比如一个存储了大量网页及其相关信息的表Webtable,Webtable使用URL作为行关键字,使用网页的某些属性作为列名,网页的内容存入contents列中,并使用获取该网页的时间戳标识同一个网页的不同版本 。在Bigtable中,Webtable的存储范例如下图所示 。

在这里插入图片描述
BigTable与并行关系数据库的比较:

在这里插入图片描述

二、关于GFS&Chubby&BigTable三者之间的关系

Bigtable系统实现了数据的分布式管理和结构的组织 。
Bigtable包含了3个主要的组件:
链接到每个客户的库,一个Master服务器和多个Tablet服务器。

根据负载情况的变化,Bigtable可以动态的向集群中添加或者删除Tablet服务器 。

在这里插入图片描述
Bigtable依赖一个高可用和持续分布式锁服务器Chubby进行管理。Chubby提供了一个名字空间,里面包含了目录和小文件 。每个目录或者文件可以当成是一个锁,读写文件的操作都是原子的 。每个Chubby的客户程序都维护一个与Chubby服务的会话 。

Bigtable使用Google的分布式文件系统(GFS)存储日志文件和数据文件。Bigtable集群通常运行在一个共享的机器池里,Bigtable依赖集群管理系统调度任务、管理共享机器上的资源、处理机器的故障以及监视机器的状态。

Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

在这里插入图片描述

注:

1、人生在勤,不索何获。

2、关于BigTable详细参见:

https://baike.baidu.com/item/BigTable/3707131?fr=aladdin

3、关于Chubby详细参见博文:

https://www.jianshu.com/p/3ce17952e4f3

4、关于GFS详细参见:

https://baike.baidu.com/item/GFS/1813072?fr=aladdin
  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

发芽ing的小啊呜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值