• 分布式文件系统GFS
  • Chubby锁服务
  • Bigtable的数据模型和系统架构
  • 分布式计算编程模型Mapreduce

Google文件系统(Google File System,GFS)是一个大型的分布式文件系统。它为 Google云计算提供海量存储,并且与Chubby、MapReduce 及 Bigtable 等技术结合十分紧密,处于所有核心技术的底层。

GFS 的系统架构

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

Chubby 是 Google 设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。通过使用Chubby 的锁服务,用户可以确保数据操作过程中的一致性。Chubby 还可以作为一个稳定的存储系统存储包括元数据在内的小数据。同时 Google 内部还使用 Chubby 进行名字服务(Name Server)。

Chubby 的基本架构

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

Bigtable 数据的存储格式

Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引。

Bigtable的存储逻辑可以表示为:

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

WorkQueue 是一个分布式的任务调度器,它主要被用来处理分布式系统队列分组和任务调度。(关于其实现Google并没有公开)

Bigtable 主要由三个部分组成:客户端程序库(Client Library)、一个主服务器(Master Server)和多个子表服务器(Tablet Server)。客户访问 Bigtable 服务时,首先要利用其函数执行 Open()操作来打开一个锁(实际上就是获取了文件目录),锁打开以后客户端就可以和子表服务器进行通信了。客户端主要与子表服务器通信,主服务主要进行一些元数据的操作以及子表服务器之间的负载调度问题,实际的数据是存储在子表服务器上的。

Bigtable 基本架构

MapReduce 是 Goole 提出的一个软件架构,是一种处理海量数据的并行编程模式,勇于大规模数据集(通常大于1TB)的并行运算。

Map函数——对一部分原始数据进行指定的操作。每个Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以充分并行化。

Reduce操作——对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单连接就形成了完整的结果集。

Map: (in_key, in_value) à {(keyj, valuej) | j= 1…k}

Reduce: (key, [value1,…,valuem]) à (key, final_value)

Map输入参数:in_key和in_value,它指明了Map需要处理的原始数据。

Map输出结果:一组<key,value>对,这是经过Map操作后所产生的中间结果。

Reduce输入参数:(key,[value1,…,valuem])。

Reduce工作:对这些对应相同key的value值进行归并处理。

Reduce输出结果:(key,final_value),所有Reduce的结果并在一起就是最终结果 。

MapReduce 的运行模型

MapReduce 操作的执行流程

实现机制:

(1)MapReduce函数首先把输入文件分成M块;

(2)分派的执行程序中有一个主控程序Master;

(3)一个被分配了Map任务的Worker读取并处理相关的输入块;

(4)这些缓冲到内存的中间结果将被定时写到本地硬盘,这些数据通过分区函数分成R个区;

(5)当Master通知执行Reduce的Worker关于中间<key,value>对的位置时,它调用远程过程,从Map Worker的本地硬盘上读取缓冲的中间数据;

(6)ReduceWorker根据每一个唯一中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce函数;

(7)当所有的Map任务和Reduce任务都完成的时候,Master激活用户程序。

简述 GFS Chubby Bigtable Mapreduce相关推荐

  1. Google 三架马车:GFS、BigTable、MapReduce

    一.GFS Google File System就是HDFS的前身 HDFS 参照了GFS的设计理念,大部分架构设计概念是类似的,比如 HDFS NameNode 相当于 GFS Master,HDF ...

  2. GFSChubbyBigTable三者定义详解相互关系

    GFS&Chubby&BigTable三者定义详解&相互关系 一.GFS & Chubby & BigTable 定义 1.关于GFS 2.关于Chubby 3 ...

  3. 《云计算》学习笔记2——Google的云计算原理与应用(GFS和MapReduce)

    Google业务 Ø全球最大搜索引擎.Google Maps.Google Earth.Gmail.YouTube等--特点:数据量庞大.面向全球用户提供实时服务 Google云计算平台技术架构 ¢文 ...

  4. 分布式系统工程实现:GFSamp;Bigtable设计的优势,互联网营销

    目前,知名度比较高的通用存储系统包括:Google GFS&Bigtable,Amazon Dynamo,Microsoft Azure存储系统及Yahoo PNUTS.其中,GFS& ...

  5. Google Chubby 论文翻译

    目录 摘要 1 介绍 2 设计 3 扩展机理 4 实际应用,意外和设计错误 5 与相关工作的比较 6 总结 7 感谢 松耦合分布式系统的锁服务 Chubby 摘要 我们描述了我们使用 Chubby 锁 ...

  6. Bigtable 论文翻译

    目录 1 介绍 2 数据模型 3 API 4 Bigtable构件 5 介绍 6 优化 7 性能评估 8 实际应用 9 经验教训 10 相关工作 11 结论 原文下载链接:https://pan.ba ...

  7. 三篇论文之bigtable

    Bigtable:一个分布式的结构化数据存储系统 译者:alex 摘要 Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据.Goo ...

  8. 聊起 BigTable,让你不再胆怯

    [这是一猿小讲的第 66 篇原创分享] 谷歌"三驾马车"的出现,才真正把我们带入了大数据时代,并指明了大数据的发展方向. GFS 作为其中一驾宝车,解决了大数据存储的难题.它能够把 ...

  9. Google Bigtable

    Google Bigtable 一个分布式的结构化数据存储系统 摘要 Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据.Goog ...

最新文章

  1. ElasticSearch5.6安装head插件
  2. php的基本语法和数据类型
  3. 一致性哈希算法----- 解决memecache 服务器扩容后的数据丢失。
  4. 高通 8x12 添加 TP和按键
  5. VTK:几何对象之Pyramid
  6. ubuntu常见问题解决方法
  7. linux c之创建进程fork和vfork函数之间的区别
  8. Bootstrap 插件的选项
  9. 消息称淘宝正测试微信支付 需要手动截图扫码支付
  10. 设计资源 | 万圣节矢量图标
  11. Python字符串isprintable()
  12. 为 WE 打 Call!
  13. 《HeadFirst SQL》笔记
  14. 华为8817升级Android5,华为c8817E官方升级包大集合
  15. springboot集成Stream上传插件+图片缩略图+视频缩略图
  16. 刷新bios后电脑死机了怎么办
  17. PB调用C#动态库轻松实现微信、支付宝支付
  18. VMware虚拟机安装及Linux系统的配置
  19. 卡通的独角鲸动画特效
  20. 关于使用Webpack时报出:ERROR IN MULTI ./src/main.js .dist/bundle.js 错误的分享

热门文章

  1. 免费180天的Ashampoo Anti-Virus 2014
  2. 怎么使用win7计算机开方,Excel开方如何计算,excel开n次方的方法
  3. Java 提取EXIF信息批量重命名
  4. 嫁人要嫁灰太狼,做人要做喜洋洋
  5. 【动态规划】最长子序列模型:导弹拦截
  6. r语言 新增一列数字类型_R语言入门简明笔记—(02)
  7. Quartus II添加器件库方法
  8. 天府杯E题 Question E: New Energy Promotion And Environmental Protection.
  9. 程序员创业的几个建议
  10. 智能音箱的2020:下降、消失、寡头