谷歌的3篇重要论文读后感

Google在03至06年发表了著名的三大论文——GFS、BigTable、MapReduce,用来实现一个大规模的管理计算系统。
Mapreduce模型分map、reduce两部分。根据谷歌三篇大数据论文,MapReduce 编程模型的原理是:用户自定义的 Map 函数接受一个输入的 key/value pair 值,然后产生一个中间 key/value pair 值的集合。MapReduce 库把所有具有相同中间 key 值 I 的中间 value 值集合在一起后传递给 reduce 函数。用一个例子详细解释mapreduce思想。要求数出1000张纸牌中有多少张黑桃,100个人每人随机发放10张,每个人数出自己拿到的牌中有多少张黑桃,这是map函数实现的,reduce函数的作用是将100人数的张数加在一起输出。Key是黑桃,value是黑桃的张数。 在了解了理论知识后,如何进行实际操作呢?在处理数据的多台电脑中有一个特殊的存在——master。Master统领大局,分配任务给剩余的计算机——worker。worker处理分配的数据,找出key和value传递给Map函数生成并输出的中间 key/value并缓存在内存中。Key和value 在磁盘上的位置将被回传给 master,master再把这些位置发给worker。Worker从相应位置上读取这些缓存数据。当 Reduce worker 读取了所有的中间数据后,通过对 key 进行排序使得具有相同 key 值的数据聚合在一起。Worker将中间的key和value集合传递给Reduce 函数统计相加。
Google-Bigtable是一个分布式的结构化存储系统,被Google用来存储很多项目的数据,这些项目对Bigtable需求差异很大,Bigtable还是能提供很灵活的服务,提现了其功能的强大。论文对Bigtable的主要组件及功能做了详细介绍:“Bigtable 包括了三个主要的组件:链接到客户程序中的库、一个 Master 服务器和多个 Tablet 服务器。针对系统工作负载的变化情况,BigTable 可以动态的向集群中添加(或者删除)Tablet服务器。 Master 服务器主要负责以下工作:为 Tablet 服务器分配 Tablets、检测新加入的或者过期失效的 Table 服务器、对Tablet服务器进行负载均衡、以及对保存在 GFS上的文件进行垃圾收集。除此之外,它还处理对模式的相关修改操作,例如建立表和列族。每个Tablet服务器都管理一个Tablet的集合(通常每个服务器有大约数十个至上千个 Tablet)。每个Tablet服务器负责处理它所加载的Tablet的读写操作,以及在Tablets过大时,对其进行分割。”,从这些可以大致了解到Bigtable的工作原理。
GFS由一个master和大量的chunkserver构成。Google设置一个master来保存目录和索引信息,这是为了简化系统结果,提高性能来考虑的,但是这就会造成主成为单点故障或者瓶颈。为了消除主的单点故障Google把每个chunk设置的很大(64M),这样,由于代码访问数据的本地性,application端和master的交互会减少,而主要数据流量都是Application和chunkserver之间的访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值