天天看点

读Google三篇论文有感

读Google三篇论文有感

在这一个星期内,我认真读了谷歌的三篇重要论文,下面是我的读后感。这三篇论文分别是Google FS、MapReduce、Bigtable。Google没有公布这三个产品的源码,但是论文里面非常详细的介绍了设计思想及功能实现,奠定了大数据算法的基础。因为理解能力有限,所以只能非常浅显的谈一下我的感受。

一.GFS

我觉得Google的设计思想是顺应时代的发展和要求,随着社会发展,人口的增多,我们需要处理更多的数据。Google GFS 文件系统,是一个面向大规模数据密集型应用的、可伸缩的分布式文件系统,我们知道GFS是运行在低性能的电脑上,运行过程中会出现许多问题,比如各种bug、人为的失误,硬盘损坏、网络中断以及电源失效等问题,所以问题监测,灾难冗余以及自动恢复的机制是GFS的优点之一。GFS的存储方法更加优秀,存储的文件被分为固定大小的块Chunk,一个单独的Master节点与多台Chunk服务器联系,客户端只向Master请求元数据,其他操作都是直接和Chunk通信交流。另外,我觉得GFS的心跳机制设计的真的很好,使用心跳信息周期性地和每个Chunk服务器通讯,检测它们的状态,说白了就是看它们是否还活着,这种机制是对文件对客户的一种保证。

二、MapReduce

MapReduce是处理和生成超大数据集的一个算法编程模型。模型分为Map(映射),Reduce(归并)两部分,Map函数是一个处理key/value键值对的数据集合的过程,Reduce函数是将它们合并的过程。数据文件被拆分成多块,master将数据发给worker进行读取,然后做Reduce函数处理。例如有两副扑克牌,分给5个人,每个人数出自己手上有几张红心,这是Map函数的工作,而Reduce函数则将这5个人数出的结果合并后输出。同时几百甚至几千台普通的廉价设备并行处理增加了容错率,也大大减少了处理时间。

三、Bigtable

BigTable是一个分布式,结构化数据的存储系统,它用来存储海量数据。每个Table都是一个多维的稀疏图,Table由行和列组成,每个存储单元都有一个时间戳,记录数据变动情况。这种列式存储广泛应用在搜索引擎,不关心具体内容,只需要查出与你关键字匹配的索引。BigTable用GFS来存储日志和数据文件,按SSTable文件格式存储数据,用Chubby管理元数据。

总之,GFS是文件系统,MapReduce是计算模型,BigTable是存储系统,三者互相关联。当然了,想要更深层次的理解需要一个积累的过程,现在网络资源丰富,要把握时代,在听老师授课之外更多的是自己的理解,放宽视野,几率知识,不断学习。

继续阅读