Google云计算GFS+MapReduce

来源:互联网 发布:wechat mac download 编辑:程序博客网 时间:2024/05/16 17:35
云计算的特点
1、超大规模
2、虚拟化
3、高可靠性
4、通用性
5、高可伸缩性
6、按需服务
7、极其廉价

云计算的分类
lIaaS:Infras tructure as a Service
              将基础设施作为服务
lPaaS:Platform as a Service
               将平台作为服务
lSaaS:Software as a Service
                将软件作为服务

Google云计算技术
Google文件系统GFS
分布式数据处理MapReduce
分布式锁服务Chubby
分布式结构化数据Bigtable
分布式存储系统Megastore
分布式监控系统Dapper

Google文件系统(Google File System,GFS)是一个大型的分布式文件系统。它为Google云计算提供海量存储,并且与Chubby、MapReduce以及Bigtable等技术结合十分紧密,处于所有核心技术的底层。
由于GFS并不是一个开源的系统,我们仅仅能从Google公布的技术文档来获得一点了解,而无法进行深入的研究。

什么是文件系统?
FAT, F AT32, NTFS,EXT, ……
用于持久地存储数据的系统
通常覆盖在底层的物理存储介质上
硬盘、CD、磁带等

lGoogle设计GFS的设计思路
将文件划分为若干块(Chunk)存储
每个块固定大小(64M)

通过冗余来提高可靠性
每个数据块至少在3个数据块服务器上冗余

数据块损坏概率?
通过单个master来协调数据访问、元数据存储

结构简单,容易保持元数据一致性
无缓存

分布式数据处理MapReduce
一个软件架构,是一种处理海量数据的并行编程模式
用于大规模数据集(通常大于1TB)的并行运算
MapReduce实现了Map和Reduce两个功能
Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集
Reduce对结果集进行分类和归纳
Map()和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻

计算问题简单,但求解困难
待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成
如何进行并行分布式计算?
如何分发待处理数据?
如何处理分布式计算中的错误?
Jeffery Dean设计一个新的抽象模型,使我们只要执行的简单计算,而将并行化、容错、数据分布、负载均衡的等杂乱细节放在一个库里,使并行编程时不必关心它们这就是MapReduce.

案例:单词记数问题(Word Count)
给定一个巨大的文本(如1TB),如何计算单词出现的数目?











0 0
原创粉丝点击