1 / 38

Google 云计算应用场景分析

Google 云计算应用场景分析. 电子工业出版社 刘鹏主编 《 云计算 》 教材配套课件 5. 主要内容. Google 云计算技术框架 应用场景分析 1 : Google 网站流量分析 应用场景分析 2 : Google 搜索. Google 云计算的技术架构. Google 的云计算应用均依赖于四个基础组件 分布式文件存储, GFS 并行数据处理模型 MapReduce 分布式锁 Chubby 结构化数据表 BigTable. Google 云计算应用. MapReduce. BigTable. Chubby. GFS.

sovann
Download Presentation

Google 云计算应用场景分析

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Google云计算应用场景分析 电子工业出版社 刘鹏主编《云计算》教材配套课件5

  2. 主要内容 • Google云计算技术框架 • 应用场景分析1:Google网站流量分析 • 应用场景分析2:Google搜索

  3. Google云计算的技术架构 • Google的云计算应用均依赖于四个基础组件 • 分布式文件存储,GFS • 并行数据处理模型MapReduce • 分布式锁Chubby • 结构化数据表BigTable Google云计算应用 MapReduce BigTable Chubby GFS

  4. Google云计算的技术架构 • 组件调用关系分析 Google云计算应用 MapReduce BigTable Chubby GFS

  5. Google云计算的技术架构 • Chubby的作用 • 为GFS提供锁服务,选择Master节点;记录Master的相关描述信息 • 通过独占锁记录Chunk Server的活跃情况 • 为BigTable提供锁服务,记录子表元信息(如子表文件信息、子表分配信息、子表服务器信息) • (可能)记录MapReduce的任务信息 • 为第三方提供锁服务与文件存储 Google云计算应用 MapReduce BigTable Chubby GFS

  6. Google云计算的技术架构 • GFS的作用 • 存储BigTable的子表文件 • 为第三方应用提供大尺寸文件存储功能 • 文件读操作流程 • API与Master通信,获取文件元信息 • 根据指定的读取位置和读取长度,API发起并发操作,分别从若干ChunkServer上读取数据 • API组装所得数据,返回结果 Google云计算应用 MapReduce BigTable Chubby GFS

  7. Google云计算的技术架构 • BigTable的作用 • 为Google云计算应用(或第三方应用)提供数据结构化存储功能 • 类似于数据库 • 为应用提供简单数据查询功能(不支持联合查询) • 为MapReduce提供数据源或数据结果存储 Google云计算应用 MapReduce BigTable Chubby GFS

  8. Google云计算的技术架构 • BigTable的存储与服务请求的响应 • 划分为子表存储,每个子表对应一个子表文件,子表文件存储于GFS之上 • BigTable通过元数据组织子表 • 每个子表都被分配给一个子表服务器 • 一个子表服务器可同时分配多个子表 • 子表服务器负责对外提供服务,响应查询请求 Tablet 1: <startRowKey1, endRowKey1>, root\bigtable\tablet1,…… Tablet 2: <startRowKey2, endRowKey2>, root\bigtable\tablet2,…… Tablet 3: <startRowKey3, endRowKey3>, root\bigtable\tablet3,…… Tablet 4: <startRowKey4, endRowKey4>, root\bigtable\tablet4,……

  9. Google云计算的技术架构 • MapReduce的作用 • 对BigTable中的数据进行并行计算处理(如统计、归类等) • 使用BigTable或GFS存储计算结果 Google云计算应用 MapReduce BigTable Chubby GFS

  10. 应用场景分析1——Google网站流量分析 • Google Analytics • 免费的企业级网络分析解决方案 • 帮助企业了解网站流量和营销效果 • 能以灵活的方式(各类报表)查看并分析流量数据

  11. 应用场景分析1——Google网站流量分析

  12. 应用场景分析1——Google网站流量分析 • 基本功能 • 统计网站的基本数据,包括会话、综合浏览量、点击量和字节流量等等 • 分析网站页面关注度,帮助企业调整或增删页面 • 分析用户浏览路径,优化页面布局 • 分析用户访问来源链接,提高广告投资回报 • 分析用户访问环境(如OS和Explorer),帮助美化页面

  13. 应用场景分析1——Google网站流量分析 • 应用的特征 • 海量数据 • 需要存储海量的用户行为数据(如点击时间、位置等) • 海量用户 • 需要为任意多的网站提供流量分析 • 技术路线 • 使用BigTable存储和检索数据,使用MapReduce统计数据

  14. 应用场景分析1——Google网站流量分析 • BigTable中的表设计 • 原始点击数据表 • 行键:点击时间 • 列键:网站URL、网站名称、用户IP地址、来源URL、目标URL…… • 目前尺寸约200TB URL 标题 IP地址 来源URL 目标URL 20091010121011 20091010121012 20091010121013

  15. 应用场景分析1——Google网站流量分析 • BigTable中的表设计 • 统计数据表 • 行键:网站URL(倒排) • 列键:点击次数(如记录最近一个月每日的访问次数等)、页面关注度(如记录网站页面的访问比率)、来源网站(如记录TOP10)、目标网站(如记录TOP10)… • 每个列中记录的内容是字符串,Analytics在查询后需要解析字符串获得统计结果 • 可根据统计内容的增多增加新的列 • 目前尺寸约20TB

  16. 应用场景分析1——Google网站流量分析 • 业务流程分析 数据处理 MapReduce 数据采集 数据查询 原始点击数据表 统计数据表

  17. 应用场景分析1——Google网站流量分析 • 基础设施 应用服务器集群 MapReduce集群 BigTable集群1 BigTable集群2 Chubby集群 GFS集群

  18. 应用场景分析1——Google网站流量分析 • 数据采集 • 数据来源 • 页面内嵌脚本 • 点击行为脚本 • 应用服务器获取到数据后,存入BigTable

  19. 应用场景分析1——Google网站流量分析 • 数据采集 • 数据存储流程 向BigTable中写入点击信息 寻找子表服务器 向内存临时子表写入信息(含排序) 如超过阈值则存储为子表文件 子表合并、压缩 GFS:存储子表文件

  20. 应用场景分析1——Google网站流量分析 • 数据处理 • 例如,统计网站(如xxx.com)过去一周网页访问比例 • 数据处理流程 数据查询 MapReduce操作 数据存储 点击数据表 统计数据表 GFS

  21. 应用场景分析1——Google网站流量分析 • 数据处理:MapReduce • Map操作 • 假设过去一周查询结果文件在GFS中包含M个Chunk,那么Master寻找M个空闲的Worker,分别处理这M个Chunk,得到每个网站中页面的访问次数 <com.xxx, aaa.asp> <com.yyy, bbb.asp> <com.zzz, aaa.asp> <com.xxx, bbb.asp> <com.xxx, aaa.asp> <com.zzz, bbb.asp> <com.xxx, <aaa.asp,2><bbb.asp,1>> <com.yyy, <bbb.asp,1>> <com.zzz, <aaa.asp,1><bbb.asp,1>>

  22. 应用场景分析1——Google网站流量分析 • 数据处理:MapReduce • 自动排序 • 对M个中间结果进行排序 <com.xxx, <aaa.asp,2><bbb.asp,1>> <com.yyy, <bbb.asp,1>> <com.zzz, <aaa.asp,1><bbb.asp,1>> <com.yyy, <ccc.asp,10><ddd.asp, 12>> <com.xxx, <aaa.asp,100><ccc.asp,10>> <com.zzz, <ddd.asp,1><ccc.asp, 10>> <com.xxx, <aaa.asp,2><bbb.asp,1>> <com.xxx, <aaa.asp,100><ccc.asp,10>> <com.yyy, <bbb.asp,1>> <com.yyy, <ccc.asp,10><ddd.asp, 12>> <com.zzz, <aaa.asp,1><bbb.asp,1>> <com.zzz, <ddd.asp,1><ccc.asp, 10>>

  23. 应用场景分析1——Google网站流量分析 • 数据处理:MapReduce • Reduce操作 • 假设得到该网站含N个网站,那么可以分配N台Worker分别处理单个网站的数据 <com.xxx, <aaa.asp,2><bbb.asp,1>> <com.xxx, <aaa.asp,100><ccc.asp,10>> <com.yyy, <bbb.asp,1>> <com.yyy, <ccc.asp,10><ddd.asp, 12>> <com.zzz, <aaa.asp,1><bbb.asp,1>> <com.zzz, <ddd.asp,1><ccc.asp, 10>> <com.xxx, <aaa.asp,0.9027> <bbb.asp,0.0088><ccc.asp,0.0885>> <com.yyy, <bbb.asp,0.0435> <ccc.asp,0.4348><ddd.asp,0.5217>> <com.zzz, <aaa.asp,0.0769> <bbb.asp,0.0769><ddd.asp,0.0769> <ccc.asp,0.7692>>

  24. 应用场景分析1——Google网站流量分析 • 数据处理 • 写入数据 • 应用程序将分析结果写入统计数据表 <com.xxx, <aaa.asp,0.9027><bbb.asp,0.0088><ccc.asp,0.0885>> <com.yyy, <bbb.asp,0.0435><ccc.asp,0.4348><ddd.asp,0.5217>> <com.zzz, <aaa.asp,0.0769><bbb.asp,0.0769><ddd.asp,0.0769><ccc.asp,0.7692>>

  25. 应用场景分析1——Google网站流量分析 • 数据查询 • 从数据统计表中查询xxx.com行 • 获取对应列的数据,解析,得到并展示最终结果 • 数据处理是定期的,非实时响应查询 <aaa.asp,0.9027><bbb.asp,0.0088><ccc.asp,0.0885>

  26. 应用场景分析2——Google搜索 • Google搜索的总体业务流程 • 数据采集: Spider • 数据整理 • 生成各类子表,如音乐表、生活搜索表、学术搜索表等 • 压缩数据表,清洗失效数据 • 数据检索

  27. 应用场景分析2——Google搜索 • 数据采集 • 通过若干Spider在网络上搜集数据 • 使用BigTable存储数据 • 行键:倒排的URL • 列键:网站名称、语言、HTML描述、图片、链接…… • 时间戳:记录不同时刻的网页快照

  28. 应用场景分析2——Google搜索 • 数据采集 • Spider可能的数据处理流程 Spider获取到网页数据 从Chubby的元数据中找到该URL所处的子表 从子表服务器中寻找对应的行 存在对应行 对应行键不存在 如果该行不存在,则插入新的行 读取网页内容列,比较新旧数据 数据发生变化 数据未变化 若当前时间戳超过指定数目,删除最旧内容 增加时间戳,标识新数据 处理完毕

  29. 应用场景分析2——Google搜索 • 数据整理 • Google搜索包括多个子类 • 生活搜索:租房、车票、酒店等 • 资讯搜索:热门新闻、分类新闻等 • 学术搜索:学术论文 • 定期计算网站评价数据 • 例如PageRank的计算 具有统一的数据来源 使用不同的表存储数据 可能使用MapReduce定期刷新数据

  30. 应用场景分析2——Google搜索 • 数据整理(Google学术搜索)

  31. 应用场景分析2——Google搜索 • 数据整理(Google学术搜索) • 数据抽取 • 寻找包含学术(论文)信息的网页数据,并结构化存储 • 学术(论文)信息抽取(分析参考文献、摘要等) • 可能的技术方案:MapReduce+BigTable • 数据统计 • 基于抽取的数据进行统计分析(如分析被引用次数等) • 可能的技术方案MapReduce+BigTable • 学术信息BigTable • 行键:论文标题 • 列键:作者、主题词、摘要、参考文献、期刊信息、被引用次数、下载链接……

  32. 应用场景分析2——Google搜索 • 数据整理(Google学术搜索) • 如何使用MapReduce抽取数据? 生成抽取目标(URL)文件 将目标文件分割为M块 寻找M个Worker分别做Map处理 自动处理 查询网站的网页数据 是否包含论文描述信息 抽取论文描述信息,输出 Map 寻找若干Worker做Reduce处理 按论文标题将输出排序 自动处理 Reduce 将论文描述信息存入BigTable

  33. 应用场景分析2——Google搜索 • 数据整理(Google学术搜索) • 如何获取论文统计数据(如论文引用次数) • 分析论文信息表,二次MapReduce 论文A, 参考文献: {论文B, 论文C, 论文D} 论文B, 参考文献: {论文Q, 论文C, 论文A} 论文C, 参考文献: {论文D, 论文H, 论文A} 论文F, 参考文献: {论文A, 论文C} 论文E, 参考文献: {论文S, 论文A, 论文D} 论文S, 参考文献: {论文E, 论文F} <论文B, 1> <论文C, 1> <论文D, 1> <论文Q, 1> <论文C, 1> <论文A, 1> <论文D, 1> <论文H, 1> <论文A, 1> <论文A, 1> <论文C, 1> <论文S, 1> <论文A, 1> <论文D, 1> <论文E, 1> <论文F, 1>

  34. 应用场景分析2——Google搜索 • 数据整理(Google学术搜索) • 如何获取论文统计数据(如论文引用次数) • 归纳排序 <论文B, 1> <论文C, 1> <论文D, 1> <论文Q, 1> <论文C, 1> <论文A, 1> <论文D, 1> <论文H, 1> <论文A, 1> <论文A, 1> <论文C, 1> <论文S, 1> <论文A, 1> <论文D, 1> <论文E, 1> <论文F, 1> <论文A, 1><论文A, 1><论文A, 1><论文A, 1> <论文B, 1> <论文C, 1><论文C, 1><论文C, 1> <论文D, 1><论文D, 1><论文D, 1> <论文E, 1> <论文F, 1> <论文H, 1> <论文Q, 1> <论文S, 1>

  35. 应用场景分析2——Google搜索 • 数据整理(Google学术搜索) • 如何获取论文统计数据(如论文引用次数) • Reduce操作 <论文A, 1><论文A, 1><论文A, 1><论文A, 1> <论文B, 1> <论文C, 1><论文C, 1><论文C, 1> <论文D, 1><论文D, 1><论文D, 1> <论文E, 1> <论文F, 1> <论文H, 1> <论文Q, 1> <论文S, 1> <论文A, 4> <论文B, 1> <论文C, 3> <论文D, 3> <论文E, 1> <论文F, 1> <论文H, 1> <论文Q, 1> <论文S, 1>

  36. 应用场景分析2——Google搜索 • 数据检索 • 有可能采用MapReduce实现 • 关键词搜索可能的处理流程 关键词语义分析 任务划分(子表+新关键词) 分配Worker 子表是否有Content列 获取行数据中Content项 是否包含关键词 Map 处理完成 输出到临时结果表 结果输出 Reduce

  37. 应用场景分析2——Google搜索 • 数据检索 • 搜索结果可能通过临时表存储 • 每个关键词对应一个临时子表 • 检索系统根据输入枚举现存检索结果的相似关键词 • 如果临时子表中存在检索结果,直接输出 • 应该存在机制刷新临时子表

  38. 本讲到此结束 欢迎访问 中国云计算网站 http://www.chinacloud.cn 欢迎使用 《云计算》教材 电子工业出版社 刘鹏 主编

More Related