Google云计算应用场景分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功