Google File system文件系统,是在特别便宜的普通硬件设备上运行,它是一个面向大规模数据密集型运用的、可伸缩的分布式文件系统。

与传统文件相比,它认为组件失效是很平常的事件,因为GFS包括几千台的廉价设备组装的存储机器,被很多的客服机访问,GFS的组件的质量不一样、数量有多,所有的机器在任何时间都有可能出现故障,但是GFS拥有持续监测、错误监测、灾难冗余以及可以自动恢复的机制。传统文件是覆盖原有数据方式来修改,而GFS大多文件修改是在文件尾部追加。

在存储文件时,GFS存储文件被分割成一定大小的chunk,创建chunk时,master服务器会给chunk一个独有的标识,而且每个块会复制到多个服务器上,通常情况上会使用三个存储复制节点。master节点管理所有文件系统的元数据,但master服务器并不是永久保存chunk服务器存有指定chunk的副本信息。它是在启动时,轮流地询问chunk服务器,用来获取信息,已保持自身信息是最新的。通过周期性的心跳来监测chunk服务器的状态。

如果chunk出现问题或硬盘坏了,master可以通过操作日志的重演把文件系统恢复到最近的状态。操作日志包含了关键元数据变更历史记录。

如果master服务器失效了,可以利用之前复制master服务器的所有操作日志和checkpoint文件,重新启动一个新的master的进程。

关于GFS的垃圾回收机制,我觉得非常好,它不是立即删除,而是将待删除的文件名改为一个包含删除时间的隐含名字。只有将隐藏文件从名称空间删除,而会永久删除。

GFS运用到施工中,也是非常合适的。首先它的成本不高,它可以存储大量文件,就算有一台电脑坏了,数据也不会丢失,而且在施工中,很多文件需要重做,保存文件很容易与之前的弄混淆,尤其是过很久再找事,分不清那个是最新版本的,而GFS是在文件尾部缀加,一更改,文件就全部变成最新版本的。有时不小心删了重要文件,很有可能找不回了,而GFS的垃圾回收,就算删除了,也可找到。所以我觉得可以将GFS文件系统运用到工程中。

学习 google file system 心得体会的更多相关文章

  1. Google File System 学习

    摘要 Google的人设计并实现了Google File System,一个可升级的分布式文件系统,用于大的分布式数据应用.可以运行在廉价的日用硬件上,具备容错性,且为大量客户端提供了高聚合的性能. ...

  2. Google File System 见解 (作业)

    Google File System ——见解 近年来,大街小巷都传遍的大数据,引起了社会的一阵学习大数据狂热,造成任何公司在招聘人员的时候都会注上一条,会大数据的优先考虑:但是,从另一方面来说,这狂 ...

  3. 经典论文翻译导读之《Google File System》(转)

    [译者预读] GFS这三个字母无需过多修饰,<Google File System>的论文也早有译版.但是这不妨碍我们加点批注.重温经典,并结合上篇Haystack的文章,将GFS.TFS ...

  4. 《The Google File System》论文阅读笔记——GFS设计原理

    一.设计预期 设计预期往往针对系统的应用场景,是系统在不同选择间做balance的重要依据,对于理解GFS在系统设计时为何做出现有的决策至关重要.所以我们应重点关注: 失效是常态 主要针对大文件 读操 ...

  5. 谷歌三大核心技术(一)The Google File System中文版

    谷歌三大核心技术(一)The Google File System中文版  The Google File System中文版 译者:alex 摘要 我们设计并实现了Google GFS文件系统,一个 ...

  6. Colossus: Successor to the Google File System (GFS)

    Colossus is the successor to the Google File System (GFS) as mentioned in the recent paper on Spanne ...

  7. Google file system

    读完了Google file system论文的中文版,记录一下总结,懒得打字,直接上草图:

  8. The Google File System 中文版

    摘要 我们设计并实现了Google文件系统,一个面向分布式数据密集型应用的.可伸缩的分布式文件系统.虽然运行在廉价的日用硬件设备上,但是它依然了提供容错功能,为大量客户机提供了很高的总体性能. 虽然与 ...

  9. 【转】谷歌三大核心技术(一)The Google File System中文版

      The Google File System中文版 译者:alex 摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的.可伸缩的分布式文件系统.GFS虽然运行在廉价 ...

随机推荐

  1. Linux之添加交换分区

    Linux下的交换分区我们可以随意改变大小,如果说日常生活中分区不够用,今天我们来举个例子如何添加. 1.首先是使用dd命令创建一个空文件,这个空文件的大小就是你要继续添加的swap的大小,比如我这里 ...

  2. 第二次项目冲刺(Beta版本)2017/12/8

    一.任务分布 二.燃尽图 三.站立式会议 1.照片(就要传了) 2.任务安排 四.总结 这次吸收了上次的教训,将任务进行更加详细的分布,分工更加明确,果然效率就高多了,哈哈哈.

  3. php无限分类 下拉框

    无限分类 下拉框优势:填写参数少,只需要指定一个循环节点($parnent_id),就可以循环所有下级分类.循环输出结构很有特色,比较符合我的口味.补充: $parent_id才是上下级关联的节点,i ...

  4. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(一)环境说明

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  5. Mac svn使用学习-3-客户端调用服务端简单例子

    既然在前一篇内容中我们已经讲svn服务器搭建好了,那么接下来我们试着试着简单使用一个该服务器 1.从本地导入代码到服务器上 userdeMBP:~ user$ svn import /Users/us ...

  6. nginx静态文件缓存的解决方案

    nginx的一大功能就是完成静态资源的分离部署,减轻后端服务器的压力,如果给这些静态资源再加一级nginx的缓存,可以进一步提升访问效率. 第一步:添加nginx.conf的http级别的缓存配置 # ...

  7. OpenCV——ROI截取、线性混合、通道分离、合并、亮度对比度调整

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  8. Python2.7-StringIO和cStringIO

    官方文档:https://docs.python.org/2/library/stringio.html StringIO 和 cStringIO 都是对内存中的文件进行读写,操作方法与文件操作类似, ...

  9. Windows10 + eclipse + JDK1.8 + Apache Maven 3.6.0 + dl4j深度学习环境配置

    Windows10 + eclipse + JDK1.8 + Apache Maven 3.6.0 + dl4j深度学习环境配置 JDK下载安装请自行,并设置好环境变量1 查看Java版本C:\Use ...

  10. vi 替换

    在vi编辑器中,能够利用 :s命令能够实现字符串的替换.详细的使用方法例如以下: 1.:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串str1: 2.:s/str1/str2/ ...