文档章节

Google文件系统(转自维基百科)

xionghuiCoder
 xionghuiCoder
发布于 2016/03/29 17:26
字数 1389
阅读 89
收藏 0
点赞 1
评论 0

Google文件系统(英语:Google File System,缩写为GFS或GoogleFS),一种专有分布式文件系统,由Google公司开发,运行于Linux平台上[1]。尽管Google在2003年公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。[2]

2013年,Google公布了Colossus项目,作为下一代的Google文件系统[3]

历史

设计

GFS专门为Google的核心数据即页面搜索的存储进行了优化。数据使用大到若干G字节的大文件持续存储,而这些文件极少被删除、覆盖或者减小;通常只是进行添加或读取操作。它也是针对Google的计算机集群进行的设计和优化,这些节点是由廉价的“常用”计算机组成,这就意味着必须防止单个节点的高损害率和随之带来的数据丢失。其它设计理念包括高数据吞吐率,甚至这带来了访问反应期变差。

节点分为两类:节点和Chunkservers。Chunkservers存储数据文件,这些单个的文件象常见的文件系统中的簇或者扇区那样被分成固定大小的数据块(这也是名字的由来)。每个数据块有一个唯一的64位标签,维护从文件到组成的数据块的逻辑映射。每个数据块在网络上复制一个固定数量的次数,缺省次数是3次,对于常用文件如可执行文件的次数要更多。

主服务器通常并不存储实际的大块数据,而是存储与大块数据相关的元数据,这样的数据如映射表格将64位标签映射到大块数据位置及其组成的文件、大块数据副本位置、哪个进程正在读写特定的大数据块或者追踪复制大块数据的“快照”(通常在主服务器的激发下,当由于节点失败的时候,一个大数据块的副本数目降到了设定的数目下)。所有这些元数据通过主服务器周期性地接收从每个数据块服务器来的更新(“心跳消息”)保持最新状态。

操作的允许授权是通过限时的、倒计时“租期”系统来处理的,主服务器授权一个进程在有限的时间段内访问数据块,在这段时间内主服务器不会授权其它任何进程访问数据块。被更改的chunkserver——总是主要的数据块存储器,然后将更改复制到其它的chunkserver上。这些变化直到所有的chunkserver确认才存储起来,这样就保证了操作的完整性和原子性

访问大数据块的程序首先查询主服务器得到所要数据块的位置,如果大数据块没有进行操作(没有重要的租约),主服务器回答大数据块的位置,然后程序就可以直接与chunkserver进行联系接收数据(类似于Kazaa和它的超级节点)。

批评意见

只能有一个主服务器——代码不允许存在多个主服务器。这看起来是限制系统可扩展性和可靠性的一个缺陷,因为系统的最大存储容量和正常工作时间受制于主服务器的容量和正常工作时间,也因为它要将所有的元数据进行编制,并且因为几乎所有的动作和请求都经过它;但是Google的工程师们辩解说事实并不是这样。元数据是非常紧凑的,仅仅只有数K到数M的大小,并且主服务器通常是网络上性能最好的节点之一;至于可靠性,通常有一个“影子”主服务器制作主服务器的镜像,一旦主服务器失败它将接替工作。另外,主服务器极少成为瓶颈,因为客户端仅仅获取元数据然后将它们缓存起来;随后的交互工作是直接与chunkservers进行。同样,使用单个的主服务器可以大幅度地降低软件的复杂性,如果有多个的主服务器,软件将变得复杂以能够保证数据完整性、自动操作、负载均衡和安全性。

参考文献

  1. ^ Google提供的论文The Google File System中,多处提到

  2. ^ "Despite having published details on technologies like the Google File System, Google has not released the software as open source and shows little interest in selling it. The only way it is available to another enterprise is in embedded form--if you buy a high-end version of the Google Search Appliance, one that is delivered as a rack of servers, you get Google's technology for managing that cluster as part of the package." "How Google Works"

  3. ^ Google's Colossus Makes Search Real-Time by Dumping MapReduce, High Scalability (World Wide Web log), 2010-09-11.

外部链接

参见

本文转载自:https://zh.wikipedia.org/wiki/Google%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1

共有 人打赏支持
xionghuiCoder
粉丝 81
博文 34
码字总数 31340
作品 4
海淀
程序员
2015 Google hosts 持续更新【更新于:2015-09-22】

本页面长期更新Google、谷歌学术、维基百科、ccFox.info、ProjectH、3DM、Battle.NET 、WordPress、MicrosoftLive、GitHub、Box.com、SoundCloud、inoreader、Feedly、FlipBoard、Twitter、F...

天天顺利
2015/09/23
0
1
维基百科停摆原因:光纤故障服务中断

维基百科本月6日位于佛州的数据中心发生光纤断线的技术性意外,致使数百万使用者无法访问。维基百科昨日在太平洋时间早上6:30左右出现无法存取或严重延迟的情形,当时网站通过Twitter公告,网...

oschina
2012/08/08
1K
3
Android 十大优秀应用软件

Android市场上有将近九万种应用软件,我们且举其中十个值得一看的。 Google Android操作系统受欢迎度骤增,其应用软件市场迅速成长。目前市场上已经有大概九万种应用,虽然不及iPhone三十万之...

xyxzfj
2010/10/31
2.2K
0
common-tools(1)之中文相关工具类使用(ZhUtil)

发了个自己写的工具包,发现可能是样例代码太少了,导致反响不够强烈啊。那么从现在开始就以博文的形式介绍下我的这个工具包有哪些功能。 工具包我发布到github上了,开源中国的地址是:htt...

路小磊
2013/02/24
0
2
Google 屏蔽自定义网站的功能也下课了

噩耗一个接着一个,Google搜索曾经有一个很强大的功能就是让你自定义屏蔽某些特定网站域名不出现在搜索结果里(当然你必须登录自己的帐号), 比如你讨厌百毒百科,就屏蔽baike.baidu.com这个...

oschina
2013/03/25
1K
18
如何使用中文维基百科语料

前言 在做自然语言处理时很多时候都会需要中文语料库,高质量的中文语料库较难找,维基百科和百度百科算是比较不错的语料库。其中维基百科会定时将语料库打包发布 ,可以下载最新版本的语料库...

超人汪小建
2017/10/26
0
0
8 款佩奇应该砍掉的Google产品

国外媒体Business Insider文章,认为刚刚走马上任的佩奇应该收缩Google战线,砍掉一些与主营业务关联性差的产品。 列表如下: 1、Knol: 类似维基百科,但是不像维基百科那样有用。 2、Orkut...

老枪
2011/04/05
1K
2
Ubuki Chrome插件让Wikipedia换上Ubuntu面貌

Chrome浏览器插件 ‘Ubuki’用Ubuntu字体代替维基百科上的默认字体,使维基百科看起来更加美观了。 Ubuntu字体已经加入Google font directory,没有必要在本地安装Ubuntu字体,只需安装该插件...

火耳
2011/01/16
153
0
pdf文件格式(一)背景

对于PDF的文件格式定义,最好是由官方文档,查阅了百度和google,二者分别推荐了百度百科和维基百科。与文件格式,百度百科语焉不详,维基百科却将pdf的前生今世都作了介绍和详细描述,并给出...

MrStone
2011/12/13
0
0
OpenStreetMap 与 Google Maps:小巫遇大巫

如 果要问 Google 除了搜索引擎之外最受欢迎的服务是什么,得到最多票数的答案之一肯定是 Google Maps。据调查,71 % 的在线地图服务使用者都在使用 Google Maps。这个免费地图服务(对个人用...

虫虫
2012/04/10
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Win10专业版安装GIT后使用Git Bash闪退解决办法

百度后把过程和最终解决办法记录下来: 百度首先出来的解决办法如下: 来自:https://segmentfault.com/q/1010000012722511?sort=created 重启电脑 重新安装 安装到C盘 尝试网上的教程 \Git...

特拉仔
17分钟前
0
0
设计模式

1.装饰器模式 概念 允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的。 实现 增加一个修饰类包裹原来的...

EasyProgramming
32分钟前
1
0
用python2和opencv进行人脸识别

一、安装cv2 sudo apt-get install python-opencv opencv-data 二、 Haar特征分类器 Haar特征分类器就是一个XML文件,该文件中会描述人体各个部位的Haar特征值。包括人脸、眼睛、嘴唇等等。 ...

wangxuwei
32分钟前
0
0
python模板中循环字典

{% for k,v in user.items %} {{ k}} {{ v}} {% endfor %}

南桥北木
今天
0
0
Java8系列之重新认识HashMap

简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示: 下面针对各个实现类...

HOT_POT
今天
0
0
获取调用方的className

/** * 获取调用方的class * @return */private static String getInvoke() { StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); S......

iborder
今天
0
0
深入了解一下Redis的内存模型!

一前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符...

Java填坑之路
今天
1
0
从实践出发:微服务布道师告诉你Spring Cloud与Spring Boot他如何选择

背景 随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加。在这个背景下,平台的技术架构也完成了从传统的单体应用到微...

老道士
今天
1
0
大数据学习的各个阶段

第一阶段:Linux课程讲解Linux基础操作,讲的是在命令行下进行文件系统的操作,这是Hadoop学习的基础,后面的所有视频都是基于linux操作的。鉴于很多学员没有linux基础,特增加该内容,保证零linux...

董黎明
今天
0
0
CVE-2013-0077 堆溢出分析

找了很久才发现这个环境比较容易搭建分析... 环境: 系统---Win XP SP3 漏洞程序:QQPlayer 3.7.892.400 出错DLL:quartz.dll 6.5.2600.5512 调试工具:x32db+gflag.exe 过程: 首先gflag设置...

Explorer0
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部