30
基基 Hadoop/HBase 基 基基基基基基基 一统 基 基

基于 Hadoop / HBase 的一淘搜索离线系统

Embed Size (px)

DESCRIPTION

基于 Hadoop / HBase 的一淘搜索离线系统. 莫 问. 个人简介. 花名:莫问 真 名:王峰 2006 年硕士毕业于北航计算机系 毕业后加入阿里巴巴集团 雅虎中国 - 垂直搜索团队 阿里云 - 计算服务团队 淘宝 / 一淘 - 网页抓取团队 技术方向:分布式系统和大数据处理. 提 纲. 一淘搜索系统架构 基于 HBase 的分布式存储系统 基于 Hadoop 的分布式计算平台 一淘全网商品离线处理系统. 一淘搜索系统架构. Web. 淘宝商品. 搜索前端. 抓取系统. 淘宝商品导入. 存储系统. - PowerPoint PPT Presentation

Citation preview

Page 1: 基于 Hadoop / HBase 的一淘搜索离线系统

基于 Hadoop/HBase 的一淘搜索离线系统

莫 问

Page 2: 基于 Hadoop / HBase 的一淘搜索离线系统

个人简介

• 花名:莫问 真名:王峰 • 2006 年硕士毕业于北航计算机系• 毕业后加入阿里巴巴集团• 雅虎中国 - 垂直搜索团队• 阿里云 - 计算服务团队• 淘宝 / 一淘 - 网页抓取团队

• 技术方向:分布式系统和大数据处理

Page 3: 基于 Hadoop / HBase 的一淘搜索离线系统

提 纲

• 一淘搜索系统架构• 基于 HBase 的分布式存储系统• 基于 Hadoop 的分布式计算平台• 一淘全网商品离线处理系统

Page 4: 基于 Hadoop / HBase 的一淘搜索离线系统

抓取系统

存储系统

业务处理流程 索引构建

搜索引擎

Web

搜索前端

淘宝商品

一淘搜索系统架构

淘宝商品导入

Page 5: 基于 Hadoop / HBase 的一淘搜索离线系统

基于 HBase 的分布式存储系统

• HBase 集群概述• HBase 主要数据• HBase 扩展开发• 基于 HBase 的分布式消息队列

Page 6: 基于 Hadoop / HBase 的一淘搜索离线系统

HBase 集群概述

• 集群版本: 0.94.x+ 扩展优化• 集群规模: 300 台 +

• 存储量: 300TB+

• 每日更新量: 10%

• 监控: Ganglia + JMX

Page 7: 基于 Hadoop / HBase 的一淘搜索离线系统

HBase 主要数据

• 电子商务网页库(几十亿)• 全网 B2C 商品• 全网导购信息(资讯、问答、论坛、点评等)

• 淘宝 + 天猫商品( 40% )• 精选优质商品• 淘客返利商品

Page 8: 基于 Hadoop / HBase 的一淘搜索离线系统

HBase 扩展开发

• 定制 Load Balance 插件• 定制 Region Split/Merge 插件和工具• 扩展 ThriftServer API

• 增强的 MapReduce Lib 支持• 丰富更多的 Metrics 指标• 多种 Coprocessor 插件

Page 9: 基于 Hadoop / HBase 的一淘搜索离线系统

RegionServer RegionServer RegionServer

……..

RegionServer

region region region

region

region

region

region

region

region

regionregion

region

region region

RS-Level Balance

Page 10: 基于 Hadoop / HBase 的一淘搜索离线系统

RegionServer RegionServer RegionServer

……..

RegionServer

region region region region

region region region

region

region

region region

regionregion

region region

Table-Level Balance

Page 11: 基于 Hadoop / HBase 的一淘搜索离线系统

RegionServer RegionServer RegionServer

……..

RegionServer

region region region region

region region region

region

region

region region

regionregion

region

region

Both RS & Table Level Balance

Page 12: 基于 Hadoop / HBase 的一淘搜索离线系统

Queue

Partition 1

Message 1

Message 2

Message 3

…………..

Partition 2

Message 1

Message 2

Message3

…………..

…………….

Column TimesatampRowkey

基于 HBase 的分布式消息队列( HQueue )

Value

Partition ID + Message ID Topic Timestamp Value

1. Queue is a HBase Table

2. Partition is a HBase Region

3. Message is a HBase

KeyValue

Page 13: 基于 Hadoop / HBase 的一淘搜索离线系统

RegionServer

Timestamp

Sequence ID

Topic

Value

Partition ID

RowKey

HQueue Writer

HTable Put API Wrapper

COPROCESSOr

…………

2. Locate By Partition ID

Sort By TS

PARTITIOn

Message

Message

Message

Message

1. Create Message KV

3. Set MessageID By TS and SeqID

4. Append To PartitionRegionServer

COPROCESSOr

…………

PARTITIOn

Message

Message

Message

Message…………

MessageID

Message 写入流程

Page 14: 基于 Hadoop / HBase 的一淘搜索离线系统

RegionServer

\\

HQueue Reader

HTable ScanAPI Wrapper

2. Locate By Partition ID

1. Create Message Scan1. Partition ID2. MessageID(TS) Range3. Message Topic

Message 读取流程

RegionServer

…………

…………

PARTITIOn

Message

Message

Message

Message

3. Scan Sequencially

Sort By TS

4. Return By Order

…………

PARTITIOn

Message

Message

Message

MessageSort By TS

Page 15: 基于 Hadoop / HBase 的一淘搜索离线系统

HQueue 特性

• 支持持久化压缩存储(继承 HBase )• 支持自动 Failover (继承 HBase )• 支持动态负载均衡(继承 HBase )• 支持 TTL 设定,自动清理过期消息(继承 HBase )• 支持多语言客户端(扩展 HBase ThriftServer )• 可与 HBase 统一运维(本质都是 HBase )• 可与 Hadoop MR 无缝对接(开发 HQueue MR Lib )

Page 16: 基于 Hadoop / HBase 的一淘搜索离线系统

电商网页库

URL 选取 URL 队列 抓取系统 Page 队列 抽取系统

提链事件队列 Dump 事件队列 图片、 JS 事件队列

提链系统 Dump 系统 图片、 JS 处理系统

HQueue 应用场景

Page 17: 基于 Hadoop / HBase 的一淘搜索离线系统

基于 Hadoop 的分布式计算平台

• Hadoop 集群介绍• Hadoop 集群业务流程• Hadoop-2.0

• 基于 Hadoop YARN 的定制计算服务

Page 18: 基于 Hadoop / HBase 的一淘搜索离线系统

• 集群版本: 2.0.X

• 集群规模: 300 台 +

• 存储量: 1PB+

• 每日运行 Job 数: 2 万 +

• 监控: Ganglia + JMX

Hadoop 集群介绍

Page 19: 基于 Hadoop / HBase 的一淘搜索离线系统

• 网页调度与选取• 网页链接提取• 网页内容抽取• 全网商品各维度数据挖掘• 一淘全网商品搜索数据 Dump

• 一淘全网商品搜索 Index Build

Hadoop 集群业务流程

Page 20: 基于 Hadoop / HBase 的一淘搜索离线系统

• NameNode HA• HDFS 所有环节无单点• 支持 HDFS 在线升级

• YARN• 引入二级调度, Not Only MR ,可定制计算模

型• Cgroups 资源隔离方案更彻底,让系统更稳定

Hadoop-2.0

Page 21: 基于 Hadoop / HBase 的一淘搜索离线系统

MapReduce-1.0

Page 22: 基于 Hadoop / HBase 的一淘搜索离线系统

MapReduce-2.0(YARN)

Resource Manager

Node Manager

App Worker

AppMaster

Node Manager

AppWorker

Node Manager App

Worker

AppWorker

AppMaster

Client

Node Status

Resource Request

App Status

Client

Service Submission

Fork / Monitor

Lanch

Page 23: 基于 Hadoop / HBase 的一淘搜索离线系统

Service Worker ……

流式数据源( HQueue, MySQL DRC, TimeTunel )

中转队列

Service Workers

InputFormat

InputFormat

OutputFormat

ServiceMaster

Metrics

Service Worker Service Worker

Service Worker ……Service Workers Service Worker Service Worker

zookeeper

register

基于 YARN 的流式计算服务

Progress Checkpoint

Metrics

Page 24: 基于 Hadoop / HBase 的一淘搜索离线系统

InputSplit InputSplit

Service Worker

ServiceMaster

1. Metrics( 包括进度 )

InputSplit InputSplit

Service Worker Service Worker

2. 发现 Worker 处理进度太慢

3. 分裂 Worker

动态分裂计算 Worker

Page 25: 基于 Hadoop / HBase 的一淘搜索离线系统

ServiceMaster

InputSplit InputSplit

Service Worker Service Worker Service Worker

InputSplit InputSplit

1. Metrics( 包括进度 )

2. 发现两个 Worker 比较空闲

3. 合并 Worker

动态合并计算 Worker

Page 26: 基于 Hadoop / HBase 的一淘搜索离线系统

一淘全网商品离线处理系统

• 全网商品接入(淘宝 + 外网)• 全网商品存储( HBase )• 全网商品 Dump (业务逻辑计算)• 全网商品 Index Build

Page 27: 基于 Hadoop / HBase 的一淘搜索离线系统

HBase (全网商品库)

一淘抓取系统

Import Job

淘宝搜索Hadoop/HBase 集群

淘宝商品外网商品

eHarmony API Service

前端运营工具

人工修正

修正商品状态属性

Import Service

全量 增量

一淘全网商品接入

Page 28: 基于 Hadoop / HBase 的一淘搜索离线系统

HBase (全网商品库)

Dump ServiceDump Job

Index Build Job

HQueue

XML 文件

问天搜索引擎

索引文件

实时消息

定期增量 XML 文件

全量 XML 文件

文件索引

HQueue增量更新事件

商品入库 / 更新

一淘全网商品 Dump + Index Build

Coprocessor

Coprocessor

Page 29: 基于 Hadoop / HBase 的一淘搜索离线系统

一淘全网商品业务处理 Pipeline

商家业务处理

运费业务处理

类目业务处理

促销业务处理

返利业务处理

排序业务处理

Dump Job Dump Service

可插件化

全量流程 实时增量流程

业务处理Pipeline

Page 30: 基于 Hadoop / HBase 的一淘搜索离线系统

新浪微博:淘莫问

Q &A