您的浏览器Javascript被禁用,需开启后体验完整功能, 请单击此处查询如何开启
网页 资讯 视频 图片 知道 贴吧 采购 地图 文库 |

Tera在百亿级实时搜索架构中的应用_互联网_IT/计算机_专业资料

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

文档贡献者

百度开发者中心 百度开发者中心汇聚了百度所有对外开放的技...
0 0 0.0
文档数 浏览总量 总评分