谭浩的博客

Simple is beauty.

MapReduce 和 GFS

本文是对google在03年发布在SOSP会议上的论文的阅读总结,该文章也是大数据系统领域经典的3篇论文之一。

基本的介绍

GFS是一个分布式文件系统,由google公司开发,运行在linux平台上。大数据基础框架Hadoop中的HDFS组件则是该系统的开源实现,现在也广泛应用于各大互联网公司。
GFS借鉴了传统分布式文件系统的实现,如扩展性,可用性,可靠性等,同时不同于传统分布式系统:

  • GFS考虑到分布式组件的失效是常有事件,GFS将持续的错误检测,灾难冗余以及自动恢复机制也集成到系统中。
  • 考虑到管理大量的小文件是不理智的,GFS重新设计了I\O操作和块的尺寸等参数
  • 数据追加操作是性能优化和原子性保证的重要考量因素
  • 应用系统和文件系统的协同设计提高了整个系统的灵活性

系统设计

设计目标:

  • 运行在大量的廉价的电脑上,需要很好的容错机制
  • 存储大量的大文件,并对大文件进行有效的管理,不对小文件进行优化
  • 对小规模随机读合并排序再按顺序批量读,避免在文件中来回移动位置
  • 高效并行的追加数据
  • 高性能的稳定带宽比低延时更重要,讲究高速率大批量的处理数据