1、Google云计算应用场景分析,主要内容,Google云计算技术框架应用场景分析1:Google网站流量分析应用场景分析2:Google搜索,Google云计算的技术架构,Google的云计算应用均依赖于四个基础组件分布式文件存储,GFS并行数据处理模型MapReduce分布式锁Chubby结构化数据表BigTable,Google云计算的技术架构,Google云计算应用,BigTable,GFS,MapReduce,Chubby,组件调用关系分析,Google云计算的技术架构,Chubby的作用为GFS提供锁服务,选择Master节点;记录Master的相关描述信息通过独占锁记录Chunk
2、Server的活跃情况为BigTable提供锁服务,记录子表元信息(如子表文件信息、子表分配信息、子表服务器信息)记录MapReduce的任务信息为第三方提供锁服务与文件存储,Google云计算的技术架构,GFS的作用存储BigTable的子表文件为第三方应用提供大尺寸文件存储功能文件读操作流程API与Master通信,获取文件元信息根据指定的读取位置和读取长度,API发起并发操作,分别从若干ChunkServer上读取数据API组装所得数据,返回结果,Google云计算的技术架构,BigTable的作用为Google云计算应用(或第三方应用)提供数据结构化存储功能类似于数据库为应用提供简单数
3、据查询功能(不支持联合查询)为MapReduce提供数据源或数据结果存储,Google云计算的技术架构,BigTable的存储与服务请求的响应划分为子表存储,每个子表对应一个子表文件,子表文件存储于GFS之上BigTable通过元数据组织子表每个子表都被分配给一个子表服务器一个子表服务器可同时分配多个子表子表服务器负责对外提供服务,响应查询请求,Tablet 1: , rootbigtabletablet1,Tablet 2: , rootbigtabletablet2,Tablet 3: , rootbigtabletablet3,Tablet 4: , rootbigtabletablet
4、4,Google云计算的技术架构,MapReduce的作用对BigTable中的数据进行并行计算处理(如统计、归类等)使用BigTable或GFS存储计算结果,应用场景分析1Google网站流量分析,Google Analytics免费的企业级网络分析解决方案帮助企业了解网站流量和营销效果能以灵活的方式(各类报表)查看并分析流量数据,应用场景分析1Google网站流量分析,应用场景分析1Google网站流量分析,基本功能统计网站的基本数据,包括会话、综合浏览量、点击量和字节流量等等分析网站页面关注度,帮助企业调整或增删页面分析用户浏览路径,优化页面布局分析用户访问来源链接,提高广告投资回报分析
5、用户访问环境(如OS和Explorer),帮助美化页面,应用场景分析1Google网站流量分析,应用的特征海量数据需要存储海量的用户行为数据(如点击时间、位置等)海量用户需要为任意多的网站提供流量分析技术路线使用BigTable存储和检索数据,使用MapReduce统计数据,应用场景分析1Google网站流量分析,BigTable中的表设计原始点击数据表行键:点击时间列键:网站URL、网站名称、用户IP地址、来源URL、目标URL目前尺寸约200TB,20091010121011,20091010121012,20091010121013,URL,标题,IP地址,来源URL,目标URL,应用场
6、景分析1Google网站流量分析,BigTable中的表设计统计数据表行键:网站URL(倒排)列键:点击次数(如记录最近一个月每日的访问次数等)、页面关注度(如记录网站页面的访问比率)、来源网站(如记录TOP10)、目标网站(如记录TOP10)每个列中记录的内容是字符串,Analytics在查询后需要解析字符串获得统计结果可根据统计内容的增多增加新的列目前尺寸约20TB,应用场景分析1Google网站流量分析,业务流程分析,数据采集,原始点击数据表,数据处理,统计数据表,数据查询,MapReduce,应用场景分析1Google网站流量分析,基础设施,应用服务器集群,BigTable集群1,Bi
7、gTable集群2,GFS集群,Chubby集群,MapReduce集群,应用场景分析1Google网站流量分析,数据采集数据来源页面内嵌脚本点击行为脚本应用服务器获取到数据后,存入BigTable,应用场景分析1Google网站流量分析,数据采集数据存储流程,向BigTable中写入点击信息,寻找子表服务器,向内存临时子表写入信息(含排序),如超过阈值则存储为子表文件,GFS:存储子表文件,子表合并、压缩,应用场景分析1Google网站流量分析,数据处理例如,统计网站(如)过去一周网页访问比例数据处理流程,数据查询,MapReduce操作,数据存储,点击数据表,统计数据表,GFS,应用场景分
8、析1Google网站流量分析,数据处理:MapReduceMap操作假设过去一周查询结果文件在GFS中包含M个Chunk,那么Master寻找M个空闲的Worker,分别处理这M个Chunk,得到每个网站中页面的访问次数,应用场景分析1Google网站流量分析,数据处理:MapReduce自动排序对M个中间结果进行排序,应用场景分析1Google网站流量分析,数据处理:MapReduceReduce操作假设得到该网站含N个网站,那么可以分配N台Worker分别处理单个网站的数据, ,应用场景分析1Google网站流量分析,数据处理写入数据应用程序将分析结果写入统计数据表,应用场景分析1Goog
9、le网站流量分析,数据查询从数据统计表中查询行获取对应列的数据,解析,得到并展示最终结果数据处理是定期的,非实时响应查询,应用场景分析2Google搜索,Google搜索的总体业务流程数据采集: Spider数据整理生成各类子表,如音乐表、生活搜索表、学术搜索表等压缩数据表,清洗失效数据数据检索,应用场景分析2Google搜索,数据采集通过若干Spider在网络上搜集数据使用BigTable存储数据行键:倒排的URL列键:网站名称、语言、HTML描述、图片、链接时间戳:记录不同时刻的网页快照,应用场景分析2Google搜索,数据采集Spider可能的数据处理流程,Spider获取到网页数据,从
10、Chubby的元数据中找到该URL所处的子表,从子表服务器中寻找对应的行,如果该行不存在,则插入新的行,读取网页内容列,比较新旧数据,增加时间戳,标识新数据,若当前时间戳超过指定数目,删除最旧内容,处理完毕,存在对应行,对应行键不存在,数据未变化,数据发生变化,应用场景分析2Google搜索,数据整理Google搜索包括多个子类生活搜索:租房、车票、酒店等资讯搜索:热门新闻、分类新闻等学术搜索:学术论文定期计算网站评价数据例如PageRank的计算,具有统一的数据来源,使用不同的表存储数据,可能使用MapReduce定期刷新数据,应用场景分析2Google搜索,数据整理(Google学术搜索)
11、,应用场景分析2Google搜索,数据整理(Google学术搜索)数据抽取寻找包含学术(论文)信息的网页数据,并结构化存储学术(论文)信息抽取(分析参考文献、摘要等)可能的技术方案:MapReduce+BigTable数据统计基于抽取的数据进行统计分析(如分析被引用次数等)可能的技术方案MapReduce+BigTable学术信息BigTable行键:论文标题列键:作者、主题词、摘要、参考文献、期刊信息、被引用次数、下载链接,应用场景分析2Google搜索,数据整理(Google学术搜索)如何使用MapReduce抽取数据?,生成抽取目标(URL)文件,将目标文件分割为M块,寻找M个Worke
12、r分别做Map处理,查询网站的网页数据,是否包含论文描述信息,抽取论文描述信息,输出,按论文标题将输出排序,将论文描述信息存入BigTable,寻找若干Worker做Reduce处理,Map,Reduce,自动处理,自动处理,应用场景分析2Google搜索,数据整理(Google学术搜索)如何获取论文统计数据(如论文引用次数)分析论文信息表,二次MapReduce,论文A, 参考文献: 论文B, 论文C, 论文D论文B, 参考文献: 论文Q, 论文C, 论文A论文C, 参考文献: 论文D, 论文H, 论文A论文F, 参考文献: 论文A, 论文C论文E, 参考文献: 论文S, 论文A, 论文D论
13、文S, 参考文献: 论文E, 论文F, ,应用场景分析2Google搜索,数据整理(Google学术搜索)如何获取论文统计数据(如论文引用次数)归纳排序, ,应用场景分析2Google搜索,数据整理(Google学术搜索)如何获取论文统计数据(如论文引用次数)Reduce操作,应用场景分析2Google搜索,数据检索有可能采用MapReduce实现关键词搜索可能的处理流程,子表是否有Content列,是否包含关键词,关键词语义分析,任务划分(子表+新关键词),输出到临时结果表,获取行数据中Content项,处理完成,分配Worker,结果输出,Map,Reduce,应用场景分析2Google搜索,数据检索搜索结果可能通过临时表存储每个关键词对应一个临时子表检索系统根据输入枚举现存检索结果的相似关键词如果临时子表中存在检索结果,直接输出应该存在机制刷新临时子表,