+ All Categories
Home > Documents > Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 •...

Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 •...

Date post: 30-Aug-2019
Category:
Upload: others
View: 11 times
Download: 0 times
Share this document with a friend
33
志宏 2017.05 Tera在百亿级实时搜索架构中的应用
Transcript
Page 1: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

⻬齐志宏 2017.05

Tera在百亿级实时搜索架构中的应用

Page 2: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

齐志宏 � 

•  现任百度网页搜索基础架构&调研架构团队技术经理 � 

•  08-12年供职腾讯 � 

•  12年10月加入百度,从事搜索架构相关工作 � 

•  调研架构 � 

•  基础技术架构 � 

自我介绍 � 

Page 3: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  搜索引擎架构 � 

•  Tera在实时搜索架构中的应用 � •  链接存储 � 

•  索引筛选 � 

•  用户行为分析 � 

内容 � 

Page 4: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

搜索架构 � 

Web 连接人与信息 � 

连接人与服务 � 

搜索引擎 � 

抓取 � (Spider) � 

索引构建 � 

检索系统 � 

Page 5: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

搜索架构 � Web

连接人与信息 � 

连接人与服务 � 

搜索引擎 � Spider � 

索引构建 � 

检索系统 � 抓取 � 

解析 � 

网页库 �  链接库 � 

调度中心 � 

链接提取 � 

挖掘回灌 �  调度 � 

属性计算 � 

Page 6: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

搜索架构 � Web

连接人与信息 � 

连接人与服务 � 

搜索引擎 � Spider � 

索 � 引 � 构 � 建 � 

检索系统 � 抓取 � 

解析 � 

网页库 �  链接库 � 

调度中心 � 

链接提取 � 

挖掘回灌 �  调度 � 

属性计算 � 

倒排计算 � 正排计算 � 

索引筛选 � 

页面特征获取 � 

页面价值计算 � 

重复度 � 计算 � 

索引价值排序 � 

Page 7: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

搜索架构 � Web

连接人与信息 � 

连接人与服务 � 

搜索引擎 � Spider � 

索 � 引 � 构 � 建 � 

检 � 索 � 系 � 统 � 

抓取 � 

解析 � 

网页库 �  链接库 � 

调度中心 � 

链接提取 � 

挖掘回灌 �  调度 � 

属性计算 � 

倒排计算 � 正排计算 � 

索引筛选 � 

页面特征获取 � 

页面价值计算 � 

重复度 � 计算 � 

索引价值排序 � 

展现层 � 

归并服务 � 

索引 � 服务 � 

query分析 � 

Page 8: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  什么是Tera � –  大型分布式表格存储系统 � 

–  高性能、可伸缩的结构化存储 � 

–  用来管理搜索引擎万亿量级的超链与网页信息 � 

•  应用规模 � –  链接存储:10PB+,万亿次/天 � 

–  索引筛选:20PB+,万亿次/天 � 

–  用户行为分析:1PB+,百亿次/天 � 

关于Tera � 

Page 9: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  搜索引擎架构 � •  Tera在实时搜索架构中的应用 � 

•  链接存储 � •  索引筛选 � •  用户行为分析 � 

内容 � 

Page 10: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  什么是链接存储 � –  位于Spider架构中 � 

–  即链接库,以URL为KEY,存储了所有已抓取和待抓取的链接 � 

–  用于持续抓取 � 

Tera应用——链接存储 � 

Page 11: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  互联网爆发式的增长趋势 � 

Tera应用——链接存储 � 

2008   2009   2010   2011   2012   2013   2014   2015   2016  

收录量 � 

百度网页收录量 � 

Page 12: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  Spider架构演进中的链接存储 � 

Tera应用——链接存储 � 

Spider � 1.0 � 链接存储 � 多机分环架构 � 链接入库:分环merge � 

Spider � 2.0 � 链接存储 � MapReduce架构 � 链接入库:批量merge � 

Spider � 3.0 � 链接存储 � BigTable架构(基于Tera) � 链接入库:实时读写 � 

Page 13: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  Spider架构的演进 � 

Tera应用——链接存储 � 

抓取 � Web �  链接提取 �  网页库 � 

链接库 � 

调度 �  入库 � 

Page 14: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  Spider架构的演进:Spider � 1.0 � –  多机分环 � 

Tera应用——链接存储 � 

抓取 �  链接 � 提取 � 

链接库 � 

调度 �  入库 � 

Cirlce � 0 � 

……

分发 �  网页库 � 

抓取 �  链接 � 提取 � 

链接库 � 

调度 �  入库 � 

Cirlce � N � 

分发 �  网页库 � 

……

……

Page 15: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  Spider架构的演进:Spider � 2.0 � –  基于HDFS+MR的Hadoop架构 � 

Tera应用——链接存储 � 

抓取 �  页面解析 � 

调度 �  入链接库 � 

链接提取 � 

分发 � 

url队列 �  时间筛选 � 

链接库 � 分布式存储 �  �  �  � HDFS �  网页库 � 

Page 16: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  Hadoop架构下的问题 � –  效率 � 

•  1个链接从发现到选出 � ->3天? � 

•  多轮MR带来的长尾效应 � 

–  资源浪费 � 

•  重复计算:不必要的全量计算,导致计算资源浪费 � 

–  开发成本 � 

•  MR程序调试困难,不易追查 � 

Tera应用——链接存储 � 

Page 17: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

调度 � 

抓取 � 

页面解析 � 

页面价值 � 计算 � 

页面类型 � 计算 � 

更新预测 � 

挖掘回灌 � 

•  Spider架构的演进 � –  Spider � 3.0 � –  基于Tera的实时架构 � 

Tera应用——链接存储 � 

Tera � (链接库) � (网页库) � 

Page 18: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  Spider3.0实时架构的优势 � 

–  数据容量 � •  链接数量:千亿 � -> � 万亿,总容量达到百PB � 

–  访问性能 � •  亿级QPS,每天访问万亿次 � 

–  数据实时更新 � •  链接实时入库,从抓取到入库的时延大幅缩减 � 

–  策略实时生效 � •  每秒亿级的随机读写 � => � 批量策略转为实时策略 � 

–  数据实时统计 � •  全局有序,支持区间访问 � =>实时统计各站点的链接数据 � 

� 

Tera应用——链接存储 � 

Page 19: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  搜索引擎架构 � •  Tera在实时搜索架构中的应用 � 

•  链接存储 � •  索引筛选 � •  用户行为分析 � 

内容 � 

Page 20: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  索引筛选在搜索引擎中的位置 �  � 

Tera应用——实时索引筛选 � 

索引构建 � 

I.  索引筛选 � 

II.  正排计算 � 

III.  倒排计算 � 

� 

保证有价值的网页能进入索引 � 

Web

搜索引擎 � 

Spider � 

索 � 引 � 构 � 建 � 

抓取 � 

解析 � 

网页库 �  链接库 � 

调度中心 � 

属性计算 � 

质量打分 �  回灌调度 � 

链接发现 � 

倒排计算 � 正排计算 � 

索引筛选 � 页面特征获取 � 

页面价值计算 � 

重复度 � 计算 � 

索引价值排序 � 

检 � 索 � 系 � 统 � 

展现层 � 

归并服务 � 

索引 � 服务 � 

query分析 � 

Page 21: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  实时索引筛选在搜索架构中的作用和效果 � –  网页筛选 � 

•  作用:去除低质网页、去除重复网页 � 

•  效果:影响索引的收录效果 � 

–  索引分层 � •  作用:索引价值排序 � 

•  效果:影响搜索结果的展现效果 � 

� 

Tera应用——实时索引筛选 � 

Page 22: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  批量索引筛选的架构 �  � 

Tera应用——实时索引筛选 � 

索引 � 筛选 � (MR) � 

特征获取 � 

页面价值 � 

网页去重 � 

索引排序 � 

索引库分类 � 

索引库库层 � 

输入 � 

网页数据 � 

网页属性 � 

输出 � 

Page 23: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  批量索引筛选的架构的问题 � –  索引时新性 � 

•  网页收录量增大 � => � 单个网页的check频次间隔被拉长 � 

•  索引容量增长 � => � 索引更新速度慢 � 

–  索引有效性 � 

•  实时索引构建,要求实时索引筛选 �  � 

Tera应用——实时索引筛选 � 

Page 24: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  实时索引筛选的架构 �  � 

Tera应用——实时索引筛选 � 

分布式文件系统 � DFS � 

Tera � 

流式 � 计算 � 

特征拼接 � 

页面价值 � 

网页去重 � 

索引排序 � 

观察者 � Scan � 

驱动实时计算 � 

网页库 �  去重库 �  结果库 � 

Page 25: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  实时索引筛选的价值 � –  索引时新性 � 

•  单个网页从抓取到筛选完成,从天级别降低到分钟、秒级 � 

•  为缩短索引库更新周期,提供前提条件 � 

–  索引有效性 � 

•  实时全局筛选加大去重力度 � 

•  对uniq资源的精准识别,等同于扩大索引量 �  � 

Tera应用——实时索引筛选 � 

Page 26: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  搜索引擎架构 � •  Tera在实时搜索架构中的应用 � 

•  链接存储 � •  索引筛选 � •  用户行为分析 � 

内容 � 

Page 27: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  用户行为分析在搜索引擎中的作用 � –  对搜索效果的改进 � 

•  索引筛选策略 � 

•  用户搜索意图分析 � 

•  时效性事件的识别 � 

•  排序算法的优化 � 

–  对搜索引擎的评价 � •  评价指标、评价体系的建立 � 

•  辅助产品及策略的迭代 � 

–  判断功能、效果好坏 � –  选择较优方案 � –  挖掘优化点 � 

–  核心:用户行为数据 � 

Tera应用——实时用户行为分析 � 

Page 28: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  用户行为数据流架构(批量) � 

Tera应用——实时用户行为分析 � 

日志 � 计算 � (MR) � 

日志解析 � 

反作弊计算 � 

Session计算 � 

日 � 志 � 合 � 并 � 

输出 � 日志 � 

HDFS � 

点击 � 

展现 � 

用户行为 � 日志 � 

HDFS � 

Page 29: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  批量模式下的效率问题 � –  日志延迟: �  � 

•  小时级日志延迟:n小时 � 

•  天级日志延迟:近半天 � 

–  业务影响 � 

•  用户行为对搜索效果的反馈太慢 � 

•  评估结论的产出需要2-3天 � –  Day � 1上线=》Day � 2完整的数据=》Day � 3产出结论 � 

–  效率决定了整体迭代速度 � 

Tera应用——实时用户行为分析 � 

Page 30: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  用户行为数据流架构(实时) � 

Tera应用——实时用户行为分析 � 

Tera � 

实时数据计算 � 

导入 � & � 清洗 � (ETL) � 

迭代计算 � 

数据 � 导出 � 

反作弊

日志 � 

点击 � 

展现 � 

…… � 

日志合并 Session

触发计算 � 

Page 31: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  效果 � 

– 日志产出速度 � •  实时日志:秒级 � 

•  小时级日志:1小时 � 

•  天级日志:2小时 � 

Tera应用——实时用户行为分析 � 

Page 32: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

•  效率 � –  实时读写,极大的提升了搜索引擎的实时处理能力 � 

•  资源 � 

–  批量计算转变为单条的实时计算,避免了不必要的全量计算 � 

•  开发成本 � 

–  中间数据直接可见,相比MR任务,Debug成本大幅下降 � 

�  � Tera是百度搜索从批量处理迈向实时计算的架构基础 � 

Tera对实时搜索架构的价值 � 

Page 33: Tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 • Tera在实时搜索架构中的应用 • 链接存储 • 索引筛选 • 用户行为分析 内容

h0ps://github.com/baidu/tera    [email protected]    


Recommended