38
Google 云云云云云云云云云 电电电电电电电 电电电电电电电电电电电电电 5

Google 云计算应用场景分析

  • Upload
    fola

  • View
    90

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Google 云计算应用场景分析

Google 云计算应用场景分析

电子工业出版社 刘鹏主编《云计算》教材配套课件 5

Page 2: Google 云计算应用场景分析

主要内容

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

Page 3: Google 云计算应用场景分析

Google 云计算的技术架构

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

GoogleGoogle云计算应用云计算应用

MapReduceMapReduce BigTableBigTable

GFSGFSChubbyChubby

Page 4: Google 云计算应用场景分析

Google 云计算的技术架构

GoogleGoogle 云计算应用云计算应用

BigTableBigTable

GFSGFS

MapReduceMapReduce

ChubbyChubby

• 组件调用关系分析

Page 5: Google 云计算应用场景分析

Google 云计算的技术架构

• Chubby的作用– 为 GFS提供锁服务,选择 Master节点;记录Master的相关描述信息

– 通过独占锁记录 Chunk Server的活跃情况– 为 BigTable提供锁服务,记录子表元信息(如子表文件信息、子表分配信息、子表服务器信息)

– (可能)记录 MapReduce的任务信息– 为第三方提供锁服务与文件存储

GoogleGoogle云计算应用云计算应用

BigTableBigTable

GFSGFS

MapReduceMapReduce

ChubbyChubby

Page 6: Google 云计算应用场景分析

Google 云计算的技术架构

• GFS的作用– 存储 BigTable的子表文件– 为第三方应用提供大尺寸文件存储功能– 文件读操作流程

• API 与 Master通信,获取文件元信息• 根据指定的读取位置和读取长度, API发起并发操作,分别从若干 ChunkServer上读取数据

• API组装所得数据,返回结果 GoogleGoogle云计算应用云计算应用

BigTableBigTable

GFSGFS

MapReduceMapReduce

ChubbyChubby

Page 7: Google 云计算应用场景分析

Google 云计算的技术架构

• BigTable的作用– 为 Google云计算应用(或第三方应用)提供数据结构化存储功能

– 类似于数据库– 为应用提供简单数据查询功能(不支持联合查询)– 为 MapReduce提供数据源或数据结果存储

GoogleGoogle云计算应用云计算应用

BigTableBigTable

GFSGFS

MapReduceMapReduce

ChubbyChubby

Page 8: Google 云计算应用场景分析

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,……

Page 9: Google 云计算应用场景分析

Google 云计算的技术架构

• MapReduce的作用– 对 BigTable中的数据进行并行计算处理(如统计、归类等)

– 使用 BigTable或 GFS存储计算结果

GoogleGoogle云计算应用云计算应用

BigTableBigTable

GFSGFS

MapReduceMapReduce

ChubbyChubby

Page 10: Google 云计算应用场景分析

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

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

Page 11: Google 云计算应用场景分析

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

Page 12: Google 云计算应用场景分析

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

• 基本功能– 统计网站的基本数据,包括会话、综合浏览量、点击量和字节流量等等

– 分析网站页面关注度,帮助企业调整或增删页面– 分析用户浏览路径,优化页面布局– 分析用户访问来源链接,提高广告投资回报– 分析用户访问环境(如 OS和 Explorer),帮助美化页面

Page 13: Google 云计算应用场景分析

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

• 应用的特征– 海量数据

• 需要存储海量的用户行为数据(如点击时间、位置等)– 海量用户

• 需要为任意多的网站提供流量分析

• 技术路线– 使用 BigTable存储和检索数据,使用 MapReduce统计数据

Page 14: Google 云计算应用场景分析

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

• BigTable中的表设计– 原始点击数据表

• 行键:点击时间• 列键:网站 URL、网站名称、用户 IP地址、来源 URL、目

标 URL……• 目前尺寸约 200TB

20091010121011

20091010121012

20091010121013

URL 标题 IP 地址 来源 URL 目标 URL

Page 15: Google 云计算应用场景分析

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

• BigTable中的表设计– 统计数据表

• 行键:网站 URL(倒排)• 列键:点击次数(如记录最近一个月每日的访问次数等)、页面关注度(如记录网站页面的访问比率)、来源网站(如记录TOP10)、目标网站(如记录 TOP10 )…

• 每个列中记录的内容是字符串, Analytics在查询后需要解析字符串获得统计结果

• 可根据统计内容的增多增加新的列• 目前尺寸约 20TB

Page 16: Google 云计算应用场景分析

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

• 业务流程分析

数据采集数据采集

原始点击数据表

数据处理数据处理

统计数据表

数据查询数据查询MapReducMapReduc

ee

Page 17: Google 云计算应用场景分析

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

• 基础设施

应用服务器集群

BigTable 集群1

BigTable 集群2

GFS 集群

Chubby集群

MapReduce 集群

Page 18: Google 云计算应用场景分析

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

• 数据采集– 数据来源

• 页面内嵌脚本• 点击行为脚本

– 应用服务器获取到数据后,存入 BigTable

Page 19: Google 云计算应用场景分析

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

• 数据采集– 数据存储流程

向 BigTable 中写入点击信息 寻找子表服务器 向内存临时子表写

入信息(含排序)

如超过阈值则存储为子表文件

GFS :存储子表文件

子表合并、压缩

Page 20: Google 云计算应用场景分析

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

• 数据处理– 例如,统计网站 ( 如 xxx.com)过去一周网页访问比例

– 数据处理流程

数据查询 MapReduce 操作 数据存储

点击数据表 统计数据表

GFS

Page 21: Google 云计算应用场景分析

应用场景分析 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>>

Page 22: Google 云计算应用场景分析

应用场景分析 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>>

Page 23: Google 云计算应用场景分析

应用场景分析 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>>

Page 24: Google 云计算应用场景分析

应用场景分析 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>>

Page 25: Google 云计算应用场景分析

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

• 数据查询– 从数据统计表中查询 xxx.com行– 获取对应列的数据,解析,得到并展示最终结果

• 数据处理是定期的,非实时响应查询<aaa.asp,0.9027><bbb.asp,0.0088><ccc.asp,0.0885>

Page 26: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• Google搜索的总体业务流程– 数据采集 : Spider– 数据整理

• 生成各类子表,如音乐表、生活搜索表、学术搜索表等• 压缩数据表,清洗失效数据

– 数据检索

Page 27: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据采集– 通过若干 Spider在网络上搜集数据– 使用 BigTable存储数据

• 行键:倒排的 URL• 列键:网站名称、语言、 HTML描述、图片、链接……• 时间戳:记录不同时刻的网页快照

Page 28: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据采集– Spider可能的数据处理流程

Spider 获取到网页数据

从 Chubby 的元数据中找到该 URL 所处的子

表从子表服务器中寻找

对应的行

如果该行不存在,则插入新的行

读取网页内容列,比较新旧数据

增加时间戳,标识新数据

若当前时间戳超过指定数目,删除最旧内容 处理完毕

存在对应

行对应行键不存在

数据未变化数据发生变化

Page 29: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据整理– Google搜索包括多个子类

• 生活搜索:租房、车票、酒店等• 资讯搜索:热门新闻、分类新闻等• 学术搜索:学术论文

– 定期计算网站评价数据• 例如 PageRank的计算

具有统一的数据来源 使用不同的表存储数据可能使用 MapReduce定期刷新数据

Page 30: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据整理( Google学术搜索)

Page 31: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据整理( Google学术搜索)– 数据抽取

• 寻找包含学术(论文)信息的网页数据,并结构化存储• 学术(论文)信息抽取(分析参考文献、摘要等)• 可能的技术方案: MapReduce+BigTable

– 数据统计• 基于抽取的数据进行统计分析(如分析被引用次数等)• 可能的技术方案 MapReduce+BigTable

– 学术信息 BigTable• 行键:论文标题• 列键:作者、主题词、摘要、参考文献、期刊信息、被引用次数、下载链接……

Page 32: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据整理( Google学术搜索)– 如何使用 MapReduce抽取数据? 生成抽取目标

( URL )文件

将目标文件分割为 M 块

寻找 M 个 Worker 分别做 Map 处理

查询网站的网页数据

是否包含论文描述信息

抽取论文描述信息,输出

按论文标题将输出排序

将论文描述信息存入 BigTable

寻找若干 Worker 做Reduce 处理

MapMap

ReduceReduce

自动处理自动处理

自动处理自动处理

Page 33: Google 云计算应用场景分析

应用场景分析 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>

Page 34: Google 云计算应用场景分析

应用场景分析 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>

Page 35: Google 云计算应用场景分析

应用场景分析 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>

Page 36: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据检索– 有可能采用 MapReduce实现– 关键词搜索可能的处理流程

子表是否有Content 列

是否包含关键词

关键词语义分析

任务划分(子表 + 新关键词)

输出到临时结果表

获取行数据中Content 项

处理完成

分配 Worker

结果输出

Map

Reduce

Page 37: Google 云计算应用场景分析

应用场景分析 2——Google 搜索

• 数据检索– 搜索结果可能通过临时表存储

• 每个关键词对应一个临时子表• 检索系统根据输入枚举现存检索结果的相似关键词• 如果临时子表中存在检索结果,直接输出• 应该存在机制刷新临时子表

Page 38: Google 云计算应用场景分析

欢迎访问

中国云计算网站 http://www.chinacloud.cn

欢迎使用

《云计算》教材 电子工业出版社 刘鹏 主编

本讲到此结束