目录
一:上网查找Google相关网络产品
1. 谷歌搜索引擎
搜索引擎依然是谷歌最好的产品。谷歌搜索引擎发布于1997年,这款终极搜索引擎已经进入到所有互联网用户的日常生活当中,它搜索了整个互联网并将无限量的信息送到用户指尖。
2.Gmail
Gmail改变了世界对电子邮件的认识。Gmail能够为用户提供无限的电子邮件存储空间,所以用户可以永远不用删除邮件,而在Gmail之前这是闻所未闻的。Gmail发布于2004年4月,起初作为测试版只对邀请用户开放。到2007年2月才对普通用户开放。截止到2012年1月,Gmail已经有了3.5亿活跃用户。
3,谷歌地图
谷歌地图自从2005年2月8号发布后改变了世界。
它帮助了数以百万计的路痴,并且允许使用者在家里探索世界。
街景视图变得越来越人性化,让你畅游在巴黎的街道时感觉一切仿佛都是真的。
4 ,Android
Android是谷歌在2007年发布的,被视为对抗苹果手机及其操作系统的直接竞争产品。
Android基于Linux系统,能够为用户提供不同的手机体验方式。
截止到2012年第一季度,已有3.31亿Android用户,并且每天约有934,000名用户激活。
5, YouTube
YouTube是谷歌到目前为止最好的收购。据路透社一月份的报道“据谷歌相关数据显示,其视频网站YouTube每天都有40亿的在线视频被上传和下载,在过去的八个月里保持了25%的增速。”创立于2005年2月的YouTube允许数以百万计的用户搜寻、观看及分享原创视频。
6谷歌翻译
谷歌翻译是一种免费的翻译工具,支持多达64种语言。谷歌翻译是一种瞬时翻译,并且可以在在64种语言之间实现单词,句子和网页的任意组合。
二:从产品结构上联系理论知识了解其工作原理。
1.Google文件系统GFS
GFS是由Google设计并实现的一个可扩展的分布式文件系统,它适用于大型分布式计算密集型应用程序,是Google公司为了存储海量搜索数据而设计的专用文件系统。GFS系统的参与者有包括了发起读写请求的客户端Client、唯一负责记录状态(naming & mapping)和调度的主服务器Master和多个存储数据和进行读写(data)的块服务器Chunk Server。
2.分布式数据处理MapReduce
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)“和"Reduce(归约)”,是它们的主要思想。MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce。它采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理。
3.分布式锁服务Chubby
分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。Chubby是一种面向松耦合的分布式系统的锁服务,通常用于为一个由适度规模的大量小型计算机构成的的松耦合的分布式系统提供高可用的分布式锁服务。锁服务的目的是允许它的客户端进程同步彼此的操作,并对当前所处环境的基本状态信息达成一致。因此,Chubby的主要设计目标是为一个由适度大规模的客户端进程组成的分布式场景提供高可用的锁服务,以及易于理解的API接口定义。
4.分布式结构化数据表Bigtable
Bigtable是一个用于管理结构化数据的分布式存储系统,旨在扩展到非常大的规模:数千个商用服务器上的数PB数据。Google的许多项目都在Bigtable中存储数据,包括网络索引,Google Earth和Google Finance。这些应用对Bigtable提出了非常不同的要求,包括数据大小(从URL到网页到卫星图像)和延迟要求(从后端批处理到实时数据服务)。尽管有这些不同的需求,但Bigtable已成功为所有这些Google产品提供灵活、高性能的解决方案。
5.分布式存储系统Megastore
Megastore是在Bigtable的基础上提供了友好的数据库功能支持。是介于关系型数据库(RDBMS)和NoSQL之间的存储技术。其引入了实体组(Entity Group EG)的概念,每一个用户的所有数据构成一个实体组。每个EG中可能会有多张表。多数情况下同一个EG只有一个子表,分布在一台bigtable TabletServe上,如果EG比较大,导致子表分裂,会分布到多台机器上。同一个EG内保证强一致性,多EG之间只保证最终一致性
Megastore研发的目的是为了支撑谷歌每天30亿次的写请求和200亿次的读请求,并且要支撑PB级别的跨可用区数据规模
6.大规模分布式系统的监控基础架构Dapper
Dapper最初是为了追踪在线服务系统的请求处理过程。比如在搜索系统中,用户的一个请求在系统中会经过多个子系统的处理,而且这些处理是发生在不同机器甚至是不同集群上的, 当请求处理发生异常时,需要快速发现问题,并准确定位到是哪个环节出了问题,这是非常重要的,Dapper就是为了解决这样的问题。对系统行为进行跟踪必须是持续进行的,因为异常的发生是无法预料的,而且可能是难以重现的。同时跟踪需要是无所不在,遍布各处的,否则可能会遗漏某些重要的点。基于此 Dapper有如下三个最重要的设计目标: 低的额外开销,对应用的透明性,可扩展。同时产生的 跟踪 数据需要可以被快速分析,这样可以帮助用户 实时 获取在线服务状态。
7.海量数据的交互式分析工具Dremel
Dremel是一款海量数据交互式分析工具.Dremel和MapReduce并不是互相替代,而是相互补充的技术。在不同的应用场景下各有其用武之地。虽然 MapReduce 在处理数据时的确有其便捷性。但是当利用 MapReduce 从海量的数据集中提取出有效的特征时,很可能需要等待几个小时甚至更长时间才能出结果,假如发现代码的算法有问题,无法有效地提取特征,因此又重新修改了代码,并再次运行。这样的过程可能要反复好几 次,总的耗时可能多达数天,所以效率极低。就此Google的团队结合其自身的实际需求,借鉴搜索引擎和并行数据库的一些技术,开发出了实时的交互式查询系统Dremel。
8.内存大数据分析系统PowerDrill
用户对于实时的交互式数据查询和分析一直都有很高的要求,尤其是在一些数据探索的场景,完成一项任务之前需要先向系统发出请求,根据得到的结果来修正查询内容,并再次向系统发出新的查询,如此反复的过程可能要进行很多次。很显然MapReduce无法实现这种程度的交互式查询。Dremel 可以在一定程度上实现实时的交互式查询,但是随着数据规模的增大和Google内部对ad hoc查询(即席查询)需求的增多, 因此Google设计和开发了新的交互式查询系统PowerDrill。
PowerDrill组成部分
- Web UI界面:用于和用户进行交互
- 一个抽象层:用户的命令会被转换成SQL,然后根据不同的需求,这些命令会 被发送至不同的终端,比如Dremel,Bigtable等
- 列式存储:数据存储方式
- Google应用程序引擎
Google App Engine中文意思Google 应用程序引擎,简写GAE;通过 Google App Engine,它即使在负载很重和数据量极大的情况下,也可以轻松构建能安全运行的应用程序,下面介绍下怎么绑定域名。
如果你成功申请了 Google App Engine 的服务,并创建了自己的应用(Application),你会自动获得一个形如 your-application-id.appspot.com 的 URL 地址,用于你的应用程序的发布。