tera 在百亿级实时搜索架构中的应用 · • 搜索引擎架构 •...
Post on 30-Aug-2019
12 Views
Preview:
TRANSCRIPT
⻬齐志宏 2017.05
Tera在百亿级实时搜索架构中的应用
齐志宏 �
• 现任百度网页搜索基础架构&调研架构团队技术经理 �
• 08-12年供职腾讯 �
• 12年10月加入百度,从事搜索架构相关工作 �
• 调研架构 �
• 基础技术架构 �
自我介绍 �
• 搜索引擎架构 �
• Tera在实时搜索架构中的应用 � • 链接存储 �
• 索引筛选 �
• 用户行为分析 �
内容 �
搜索架构 �
Web 连接人与信息 �
连接人与服务 �
搜索引擎 �
抓取 � (Spider) �
索引构建 �
检索系统 �
搜索架构 � Web
连接人与信息 �
连接人与服务 �
搜索引擎 � Spider �
索引构建 �
检索系统 � 抓取 �
解析 �
网页库 � 链接库 �
调度中心 �
链接提取 �
挖掘回灌 � 调度 �
属性计算 �
搜索架构 � Web
连接人与信息 �
连接人与服务 �
搜索引擎 � Spider �
索 � 引 � 构 � 建 �
检索系统 � 抓取 �
解析 �
网页库 � 链接库 �
调度中心 �
链接提取 �
挖掘回灌 � 调度 �
属性计算 �
倒排计算 � 正排计算 �
索引筛选 �
页面特征获取 �
页面价值计算 �
重复度 � 计算 �
索引价值排序 �
搜索架构 � Web
连接人与信息 �
连接人与服务 �
搜索引擎 � Spider �
索 � 引 � 构 � 建 �
检 � 索 � 系 � 统 �
抓取 �
解析 �
网页库 � 链接库 �
调度中心 �
链接提取 �
挖掘回灌 � 调度 �
属性计算 �
倒排计算 � 正排计算 �
索引筛选 �
页面特征获取 �
页面价值计算 �
重复度 � 计算 �
索引价值排序 �
展现层 �
归并服务 �
索引 � 服务 �
query分析 �
• 什么是Tera � – 大型分布式表格存储系统 �
– 高性能、可伸缩的结构化存储 �
– 用来管理搜索引擎万亿量级的超链与网页信息 �
• 应用规模 � – 链接存储:10PB+,万亿次/天 �
– 索引筛选:20PB+,万亿次/天 �
– 用户行为分析:1PB+,百亿次/天 �
关于Tera �
• 搜索引擎架构 � • Tera在实时搜索架构中的应用 �
• 链接存储 � • 索引筛选 � • 用户行为分析 �
内容 �
• 什么是链接存储 � – 位于Spider架构中 �
– 即链接库,以URL为KEY,存储了所有已抓取和待抓取的链接 �
– 用于持续抓取 �
Tera应用——链接存储 �
• 互联网爆发式的增长趋势 �
Tera应用——链接存储 �
2008 2009 2010 2011 2012 2013 2014 2015 2016
收录量 �
百度网页收录量 �
• Spider架构演进中的链接存储 �
Tera应用——链接存储 �
Spider � 1.0 � 链接存储 � 多机分环架构 � 链接入库:分环merge �
Spider � 2.0 � 链接存储 � MapReduce架构 � 链接入库:批量merge �
Spider � 3.0 � 链接存储 � BigTable架构(基于Tera) � 链接入库:实时读写 �
• Spider架构的演进 �
Tera应用——链接存储 �
抓取 � Web � 链接提取 � 网页库 �
链接库 �
调度 � 入库 �
• Spider架构的演进:Spider � 1.0 � – 多机分环 �
Tera应用——链接存储 �
抓取 � 链接 � 提取 �
链接库 �
调度 � 入库 �
Cirlce � 0 �
……
分发 � 网页库 �
抓取 � 链接 � 提取 �
链接库 �
调度 � 入库 �
Cirlce � N �
分发 � 网页库 �
……
……
• Spider架构的演进:Spider � 2.0 � – 基于HDFS+MR的Hadoop架构 �
Tera应用——链接存储 �
抓取 � 页面解析 �
调度 � 入链接库 �
链接提取 �
分发 �
url队列 � 时间筛选 �
链接库 � 分布式存储 � � � � HDFS � 网页库 �
• Hadoop架构下的问题 � – 效率 �
• 1个链接从发现到选出 � ->3天? �
• 多轮MR带来的长尾效应 �
– 资源浪费 �
• 重复计算:不必要的全量计算,导致计算资源浪费 �
– 开发成本 �
• MR程序调试困难,不易追查 �
Tera应用——链接存储 �
调度 �
抓取 �
页面解析 �
页面价值 � 计算 �
页面类型 � 计算 �
更新预测 �
挖掘回灌 �
• Spider架构的演进 � – Spider � 3.0 � – 基于Tera的实时架构 �
Tera应用——链接存储 �
Tera � (链接库) � (网页库) �
• Spider3.0实时架构的优势 �
– 数据容量 � • 链接数量:千亿 � -> � 万亿,总容量达到百PB �
– 访问性能 � • 亿级QPS,每天访问万亿次 �
– 数据实时更新 � • 链接实时入库,从抓取到入库的时延大幅缩减 �
– 策略实时生效 � • 每秒亿级的随机读写 � => � 批量策略转为实时策略 �
– 数据实时统计 � • 全局有序,支持区间访问 � =>实时统计各站点的链接数据 �
�
Tera应用——链接存储 �
• 搜索引擎架构 � • Tera在实时搜索架构中的应用 �
• 链接存储 � • 索引筛选 � • 用户行为分析 �
内容 �
• 索引筛选在搜索引擎中的位置 � �
Tera应用——实时索引筛选 �
索引构建 �
I. 索引筛选 �
II. 正排计算 �
III. 倒排计算 �
�
保证有价值的网页能进入索引 �
Web
搜索引擎 �
Spider �
索 � 引 � 构 � 建 �
抓取 �
解析 �
网页库 � 链接库 �
调度中心 �
属性计算 �
质量打分 � 回灌调度 �
链接发现 �
倒排计算 � 正排计算 �
索引筛选 � 页面特征获取 �
页面价值计算 �
重复度 � 计算 �
索引价值排序 �
检 � 索 � 系 � 统 �
展现层 �
归并服务 �
索引 � 服务 �
query分析 �
• 实时索引筛选在搜索架构中的作用和效果 � – 网页筛选 �
• 作用:去除低质网页、去除重复网页 �
• 效果:影响索引的收录效果 �
– 索引分层 � • 作用:索引价值排序 �
• 效果:影响搜索结果的展现效果 �
�
Tera应用——实时索引筛选 �
• 批量索引筛选的架构 � �
Tera应用——实时索引筛选 �
索引 � 筛选 � (MR) �
特征获取 �
页面价值 �
网页去重 �
索引排序 �
索引库分类 �
索引库库层 �
输入 �
网页数据 �
网页属性 �
输出 �
• 批量索引筛选的架构的问题 � – 索引时新性 �
• 网页收录量增大 � => � 单个网页的check频次间隔被拉长 �
• 索引容量增长 � => � 索引更新速度慢 �
– 索引有效性 �
• 实时索引构建,要求实时索引筛选 � �
Tera应用——实时索引筛选 �
• 实时索引筛选的架构 � �
Tera应用——实时索引筛选 �
分布式文件系统 � DFS �
Tera �
流式 � 计算 �
特征拼接 �
页面价值 �
网页去重 �
索引排序 �
观察者 � Scan �
驱动实时计算 �
网页库 � 去重库 � 结果库 �
• 实时索引筛选的价值 � – 索引时新性 �
• 单个网页从抓取到筛选完成,从天级别降低到分钟、秒级 �
• 为缩短索引库更新周期,提供前提条件 �
– 索引有效性 �
• 实时全局筛选加大去重力度 �
• 对uniq资源的精准识别,等同于扩大索引量 � �
Tera应用——实时索引筛选 �
• 搜索引擎架构 � • Tera在实时搜索架构中的应用 �
• 链接存储 � • 索引筛选 � • 用户行为分析 �
内容 �
• 用户行为分析在搜索引擎中的作用 � – 对搜索效果的改进 �
• 索引筛选策略 �
• 用户搜索意图分析 �
• 时效性事件的识别 �
• 排序算法的优化 �
– 对搜索引擎的评价 � • 评价指标、评价体系的建立 �
• 辅助产品及策略的迭代 �
– 判断功能、效果好坏 � – 选择较优方案 � – 挖掘优化点 �
– 核心:用户行为数据 �
Tera应用——实时用户行为分析 �
• 用户行为数据流架构(批量) �
Tera应用——实时用户行为分析 �
日志 � 计算 � (MR) �
日志解析 �
反作弊计算 �
Session计算 �
日 � 志 � 合 � 并 �
输出 � 日志 �
HDFS �
点击 �
展现 �
用户行为 � 日志 �
HDFS �
• 批量模式下的效率问题 � – 日志延迟: � �
• 小时级日志延迟:n小时 �
• 天级日志延迟:近半天 �
– 业务影响 �
• 用户行为对搜索效果的反馈太慢 �
• 评估结论的产出需要2-3天 � – Day � 1上线=》Day � 2完整的数据=》Day � 3产出结论 �
– 效率决定了整体迭代速度 �
Tera应用——实时用户行为分析 �
• 用户行为数据流架构(实时) �
Tera应用——实时用户行为分析 �
Tera �
实时数据计算 �
导入 � & � 清洗 � (ETL) �
迭代计算 �
数据 � 导出 �
反作弊
日志 �
点击 �
展现 �
…… �
日志合并 Session
触发计算 �
• 效果 �
– 日志产出速度 � • 实时日志:秒级 �
• 小时级日志:1小时 �
• 天级日志:2小时 �
Tera应用——实时用户行为分析 �
• 效率 � – 实时读写,极大的提升了搜索引擎的实时处理能力 �
• 资源 �
– 批量计算转变为单条的实时计算,避免了不必要的全量计算 �
• 开发成本 �
– 中间数据直接可见,相比MR任务,Debug成本大幅下降 �
� � Tera是百度搜索从批量处理迈向实时计算的架构基础 �
Tera对实时搜索架构的价值 �
h0ps://github.com/baidu/tera tera_dev@baidu.com
top related