基于Hadoop/HBase的一淘搜索离线系统 莫 问
个人简介 花名:莫问 真名:王峰 2006年硕士毕业于北航计算机系 毕业后加入阿里巴巴集团 雅虎中国 - 垂直搜索团队 花名:莫问 真名:王峰 2006年硕士毕业于北航计算机系 毕业后加入阿里巴巴集团 雅虎中国 - 垂直搜索团队 阿里云 - 计算服务团队 淘宝/一淘 - 网页抓取团队 技术方向:分布式系统和大数据处理
提 纲 一淘搜索系统架构 基于HBase的分布式存储系统 基于Hadoop的分布式计算平台 一淘全网商品离线处理系统
一淘搜索系统架构 Web 淘宝商品 搜索前端 抓取系统 淘宝商品导入 存储系统 搜索引擎 业务处理流程 索引构建
基于HBase的分布式存储系统 HBase集群概述 HBase主要数据 HBase扩展开发 基于HBase的分布式消息队列
HBase集群概述 集群版本:0.94.x+扩展优化 集群规模:300台+ 存储量:300TB+ 每日更新量:10% 监控:Ganglia + JMX
HBase主要数据 电子商务网页库(几十亿) 全网B2C商品 全网导购信息(资讯、问答、论坛、点评等) 淘宝+天猫商品(40%) 精选优质商品 淘客返利商品
HBase扩展开发 定制Load Balance插件 定制Region Split/Merge插件和工具 扩展ThriftServer API 增强的MapReduce Lib支持 丰富更多的Metrics指标 多种Coprocessor插件
RS-Level Balance RegionServer RegionServer RegionServer RegionServer …….. region region region region region region
Table-Level Balance RegionServer RegionServer RegionServer …….. region region region region region region region
Both RS & Table Level Balance RegionServer RegionServer RegionServer RegionServer region region region region region region region region …….. region region region region region region region
Partition ID + Message ID 基于HBase的分布式消息队列(HQueue) Queue Queue is a HBase Table Partition is a HBase Region Message is a HBase KeyValue Partition 1 Partition 2 … Message 1 Message 1 … Message 2 Message 2 … Message 3 Message3 … ………….. ………….. ……………. Rowkey Column Timesatamp Value Partition ID + Message ID Topic Timestamp Value
Message写入流程 HTable Put API Wrapper HQueue Writer RegionServer Partition ID Message写入流程 HTable Put API Wrapper RowKey Timestamp MessageID Sequence ID 1. Create Message KV HQueue Writer Topic Value 2. Locate By Partition ID 3. Set MessageID By TS and SeqID RegionServer RegionServer 4. Append To Partition C O P R E S r P A R T I O n Message C O P R E S r P A R T I O n Message Message Message Message Message Sort By TS Message Message ………… ………… …………
Message读取流程 HTable Scan API Wrapper HQueue Reader RegionServer \\ 1. Create Message Scan Partition ID MessageID(TS) Range Message Topic HQueue Reader 2. Locate By Partition ID RegionServer \\ RegionServer 3. Scan Sequencially 4. Return By Order P A R T I O n Message P A R T I O n Message Message Message ………… Message Sort By TS Message Sort By TS Message Message ………… …………
HQueue特性 支持持久化压缩存储(继承HBase) 支持自动Failover(继承HBase) 支持动态负载均衡(继承HBase) 支持TTL设定,自动清理过期消息(继承HBase) 支持多语言客户端(扩展HBase ThriftServer) 可与HBase统一运维(本质都是HBase) 可与Hadoop MR无缝对接(开发HQueue MR Lib)
HQueue应用场景 电商网页库 URL选取 URL队列 抓取系统 Page队列 抽取系统 提链事件队列 Dump事件队列 图片、JS事件队列 提链系统 Dump系统 图片、JS处理系统
基于Hadoop的分布式计算平台 Hadoop集群介绍 Hadoop集群业务流程 Hadoop-2.0 基于Hadoop YARN的定制计算服务
Hadoop集群介绍 集群版本:2.0.X 集群规模:300台+ 存储量:1PB+ 每日运行Job数:2万+ 监控:Ganglia + JMX
Hadoop集群业务流程 网页调度与选取 网页链接提取 网页内容抽取 全网商品各维度数据挖掘 一淘全网商品搜索数据Dump 一淘全网商品搜索Index Build
Hadoop-2.0 NameNode HA YARN HDFS所有环节无单点 支持HDFS在线升级 引入二级调度,Not Only MR,可定制计算模型 Cgroups资源隔离方案更彻底,让系统更稳定
MapReduce-1.0
MapReduce-2.0(YARN) Node Manager Client Client Resource Manager App Worker Node Manager Client Client App Master App Worker Resource Manager Node Manager App Master Lanch Node Status Service Submission Fork / Monitor App Worker Node Manager Resource Request App Status App Worker
基于YARN的流式计算服务 zookeeper 流式数据源(HQueue, MySQL DRC, TimeTunel) register InputFormat Progress Checkpoint Service Workers Service Worker Service Worker …… Service Worker Metrics OutputFormat Service Master 中转队列 InputFormat Metrics Service Workers Service Worker Service Worker …… Service Worker
动态分裂计算Worker InputSplit InputSplit InputSplit InputSplit Service Worker Service Worker Service Worker 1. Metrics(包括进度) 2. 发现Worker处理进度太慢 ServiceMaster
动态合并计算Worker InputSplit InputSplit InputSplit InputSplit Service Worker Service Worker Service Worker 1. Metrics(包括进度) ServiceMaster 2. 发现两个Worker比较空闲
一淘全网商品离线处理系统 全网商品接入(淘宝+外网) 全网商品存储(HBase) 全网商品Dump(业务逻辑计算) 全网商品Index Build
一淘全网商品接入 一淘 抓取系统 淘宝搜索 Hadoop/HBase集群 前端运营工具 Import Job Import Service 人工修正 全量 增量 Import Job Import Service eHarmony API Service 外网商品 淘宝商品 修正商品 状态属性 HBase(全网商品库)
一淘全网商品Dump + Index Build 商品入库/更新 HBase(全网商品库) 增量更新事件 HQueue Coprocessor Dump Service Dump Job 问天搜索引擎 实时消息 HQueue 全量XML文件 Coprocessor 定期增量XML文件 XML文件 文件索引 Index Build Job 索引文件
一淘全网商品业务处理Pipeline 商家业务处理 业务处理Pipeline 可插件化 运费业务处理 实时增量流程 全量流程 类目业务处理 Dump Service Dump Job 促销业务处理 返利业务处理 排序业务处理
Q &A 新浪微博:淘莫问