`
zhangyu8374
  • 浏览: 94595 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

看《The Google File System》后的一些笔记

    博客分类:
  • GFS
阅读更多
看了基于Google File System思想实现的Hadoop代码,重读了Google的这篇论文《The Google File System》。Paper挺长,网上已经有热心的人把翻译版奉献了出来。在这里,只是把其中的部分内容抽取出来,与大家一起分享。
性能,可扩展性,可靠性,可用性仍然是GFS的目标,但它还有一些与传统分布式文件系统与众不同的东西:
(1)对于大规模的集群系统,机器出现故障很正常,因此系统容错必须十分重视。文件系统必须具有高可用性,数据完整性和相应的诊断工具。通过快速恢复,chunk复制,master复制达到高可用性;通过checksum检查数据完整性;通过log记录系统中出现的各种事件,以便诊断错误。
(2)传统文件系统的block的大小只有几k,而GFS将选用64M,以满足当前出现的越来越庞大的数据集处理需求。选用大的chunk size,可以:
a、减少与master的交互次数;
b、大部分的时候,对chunk的操作都集中在一个chunk上,因此可以维护一个持久的TCP连接减小网络开销;
c、减少存储在master上的元数据把它放在内存中。
在具有优点的同时,存在缺点,就是多个客户端同时访问同一个文件(此文件比较小,由一个chunk组成),易形成hot spot。
(3)通过观察发现,绝大部分的时候,对文件的修改操作都只是附加内容,很少是翻盖写或者随机写。因此在GFS中,对文件附加操作进行重点优化。

GFS的体系结构
GFS的体系结构是由一个master和多个chunkserver组成(在Hadoop中,master称作name node,chunkserver称作data node,chunk称作block)。
采用单一的master,可以简化系统设计,在拥有全局视图的情况下制定更好的chunk处置策略。采用此种方法,存在瓶颈问题是显而易见的。因此master只存储元信息,相当于元数据服务器,具体的数据传输由client和chunkserver来完成。

元数据
包括三类元数据,它们分别是:文件和chunk的命名空间,文件到chunk的映射和每个chunk副本的位置。元数据全部放入内存,这样可以加快master的操作速度,但它受限于内存大小。

操作日志
对文件系统的操作都将被记录到持久化存储介质,通过重新执行这些操作来达到恢复文件系统的目的。当操作日志达到一定大小时,将做checkpoint,这样可以减少文件系统的恢复时间。目前,Hadoop不支持对操作日志做checkpoint。

Data Flow
在GFS中,数据流和控制流分开,这是显而易见的。数据流怎么流动,具有一定的技巧性。它采用的是pipeline方式。一个chunkserver并不是把数据同时分发给其余的chunkserver,而是把数据只传给离自己最近的chunkserver(距离的远近通过IP地址来判断)。此时这个chunkserver在接受数据的同时,把数据转发给离它最近的chunkserver,这样充分利用了全双工网络的带宽。

以上只谈到paper中涉及的一些方面,完整内容请阅读paper。
分享到:
评论

相关推荐

    Go 学习笔记 高清

    从更新记录来看,作者雨痕从2012年1月开始学习Go语言,并在学习过程中不断更新笔记内容,纠正错误,并添加了更多细节。这表明了Go语言的学习和笔记的编写是一个持续的过程。 总结来说,这份学习笔记为学习Go语言的...

    hadoop学习笔记.rar

    Hadoop的核心思想源于Google的两篇论文——“GFS”(Google File System)和“MapReduce”。它由两个主要组件构成:HDFS(Hadoop Distributed File System)和MapReduce。HDFS提供了一个高容错、高吞吐量的数据存储...

    hadoop笔记2.pdf

    在2003至2004年间,Google公开了GFS(Google File System)和MapReduce的细节,启发了Doug Cutting等人开发了Nutch的DFS(Distributed File System)和MapReduce机制,使得Nutch的性能大幅提升。2005年,Hadoop作为...

    ubuntu配置相关笔记

    本笔记将重点关注三个方面:NFS(Network File System)配置、Samba配置和静态IP设置。这些知识点对于在Ubuntu上建立一个稳定的开发环境至关重要。 首先,NFS配置允许你通过网络在不同的计算机之间共享文件系统。在...

    大数据学习笔记.zip

    Hadoop的核心由两个主要部分组成:Hadoop Distributed File System (HDFS) 和 MapReduce。HDFS是分布式文件系统,能够将大量数据分布在多台廉价硬件上,提供高容错性和高吞吐量的数据访问。MapReduce则是一种编程...

    bigdata笔记

    3. 分布式计算:Hadoop是大数据处理中广泛使用的分布式计算框架,其核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS提供高容错性的分布式存储,而MapReduce则用于并行处理数据。 4. 数据存储...

    源码笔记资料.zip

    就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非...

    2010-1011学习笔记归纳

    7. **Distributed Google File System (GFS)**:Google File System是一个分布式文件系统,旨在处理海量数据的存储和处理。它为大规模数据处理应用提供了高吞吐量的数据访问能力,是大数据处理框架如Hadoop的基础。 ...

    大数据学习笔记

    HDFS(Hadoop Distributed File System)是Hadoop生态系统中的一个核心组件,负责存储和管理大规模数据。HDFS架构主要由三个部分组成:Namenode、Datanode和Secondary Namenode。 1. Namenode的作用 Namenode是...

    HADOOP学习笔记

    1. HDFS(Hadoop Distributed File System):Hadoop的分布式文件系统,它设计为跨多台机器存储大量数据,并提供高容错性和高吞吐量的数据访问。HDFS遵循主从架构,由NameNode(主节点)负责元数据管理,DataNode...

    google papers

    1. **Google文件系统(GFS)**:《The Google File System.pdf》详细阐述了Google设计和实现的分布式文件系统。GFS旨在处理海量数据,提供高可用性和容错性。它将大文件分割成块,并将这些块复制到多台机器上,确保...

    Hadoop学习笔记整理

    HDFS(Hadoop Distributed File System)是Hadoop的核心组件之一,解决了大数据的存储问题。HDFS的核心属性包括分布式存储、元数据记录、分块存储、副本机制等。HDFS的特点是能够在普通硬件上运行,高度容错,使用多...

    hadoop常识讲义+笔记.zip

    1. Hadoop概述:Hadoop是一个开源的分布式计算框架,基于Google的MapReduce编程模型和GFS(Google File System)文件系统。它的目标是提供高效、可靠、可扩展的数据处理能力,使得企业能够利用廉价硬件处理PB级别的...

    ElasticSearch笔记

    随着互联网的爆炸式增长,数据量激增,Google的GFS(Google File System)和MapReduce编程模型的出现,对大规模数据处理提出了新的解决方案。Cutting受此启发,将这些概念引入到Nutch中,形成了NDFS和MapReduce的...

    c#学习笔记.txt

    但是当他们看完C#的文档后又开始高兴起来,因为C#是如此简单:事实上,简单正是C#最大的特点。除此之外,它还具有现代、面向对象、类型安全、版本控制、兼容、灵活等特点。详细介绍请参阅rainbow(一个长着胡子的...

    GFS大数据论文阅读笔记

    概述:GFS(Google File System)是一种大型分布式文件系统,是专门为满足 Google 快速增长的数据处理需求而精心设计的。其核心目标是高效处理海量数据并实现高度可靠的分布式存储。在设计过程中,GFS 主要着眼于...

    web 从入门到放弃笔记

    ### Web从入门到放弃笔记 #### 一、Web与Internet **1.1 Internet** - **定义**: 因特网,又称互联网,是指通过TCP/IP协议族互相连接的、世界范围内的、最大的、开放的、由众多网络相互连接而成的计算机网络。 - ...

Global site tag (gtag.js) - Google Analytics