DTCC2014:Hadoop生态技术在阿里全网商品搜索实战

时间:2025-05-05

Hadoop生态技术在阿里全网商品搜索实战阿里巴巴 -王峰

自我介绍 真名:王峰 微博:淘莫问

淘宝花名:莫问

2006年硕士毕业后加入阿里巴巴集团 淘及搜索事业部(高级技术专家) 目前负责搜索离线系统团队 技术方向:分布式计算与存储

大纲 阿里搜索离线技术平台 阿里全网商品搜索系统架构 阿里电商网页库存储方案

阿里全网商品实时处理流程

阿里搜索离线技术平台B2B搜索淘宝搜索天猫搜索一淘搜索云搜索

Z O O K E E P E r

MR (Batch)

iStream (Streaming)

Spark (Iterative)

HQueue (Queue)

Phoenix (SQL)

OpenTSDB (Metrics)

YARN

HBase

HDFS

T H R I F T/ P B

阿里搜索Hadoop/HBase集群 Hadoop:基于2.2的阿里搜索定制版 HBase:基于0.94的阿里搜索定制版 部署方式:Hadoop/HBase共同部署 集群规模:机器总数已近千台,分2个集群 硬件配置:– 24/32Core CPU– 48/96GB Memory

– 12 * 1T/2T Sata Disk

阿里搜索分布式存储技术体系 HDFS(分布式文件系统) HBase(NoSQL数据库)

Phoenix(SQL On HBase) OpenTSDB(Metrics On HBase) HQueue(Queue On HBase)

HQueue存储结构1. Queue is a HBase Table2. Partition is a HBase Region 3. Message is a HBase KeyValue 4. Message is stored in Partition/Region sequentially KV/Message KV/Message KV/Message KV/Message Region/PartitionKV/Message

Table/QueueRegion/Partition KV/Message

……………………….

…………..

…………..

Rowkey

Column

Timesatamp

Value

Message的KeyValue设计:

Partition ID+ Message ID

Topic

Timestamp

Value

Timestamp+ Sequence ID

Partition ID

MessageID

Timestamp Sequence ID Topic Value

RowKey 1. Create Message KV

HQueue写入流程HQueue Client

2. Locate By Partition ID

3. Set MessageID/Update Rowkey

RegionServerC O P R O C E S S O r4. Append To Region Message KV R E G I O n Message KV Message KV Message KV…………Sort By Received Timestamp

5. Update Latest MessageID 6. Notify Subscription Threads

HQueue读取流程 Queue Name Partition ID Message ID(TS) Range Message Topics

1. Create Scan

6. Close Scanner

HQueue Client2. Locate By Partition ID 4. Return Scanner

3. Open Internal Scanner RegionServer Message KV R E G I O n Message KV Message KV Message KV………… 5. Next and Return Messages

HQueue订阅流程1. Subscribe Zookeeper Queue Name Partition ID Start Message ID(TS) Message Topics Client ID 9. Unsubscribe HQueue Client 6. Receive and Process Message KVs

2. Get Subscriber Address/Checkpoint

10. Subscriber Quit Watch C O P R O C E S S O r

5. Next and Send Message KVs RegionServer 3. Create Subscription Thread 4. Open Internal Scanner 7. Close Internal Scanner 8. if (New Message){repeat 4;} else{wait;} R E G I O n Message KV Message KV Message KV Message KV…

………

Set Checkpoint Periodically

11. Subscription Thread Quit

HQueue主要特性 读写高性能(新消息都在MemStore+顺序存储)消息持久化存储,不丢失(HFile+ HLog)消息支持TTL设定,自动清理过期消息(HBase TTL)

消息支持主动拉和订阅两种模式(HBase Client Wrapper+Coprocessor)

服务支持动态负载均衡(HBase Load Balance)服务支持快速Failover (HBase MTTR)支持多语言客户端(扩展HBase Thrift Server)可与Hadoop计算平台无缝对接(HQueueInputFormat/OutputFormat)可复用HBase集群直接部署管理,无需独立硬件(HQueue Shell)

阿里搜索分布式计算技术体系 Hadoop YARN(统一管理所有计算模型) MapReduce(批处理计算模型)

iStream(流计算模型) Spark(迭代计算模型,规划中)

iStream -基于YARN的流计算引擎Stream ServiceData SourceInputFormat

Data Source

Stream RoleOutputFormat Data Sink/Source InputFormat Stream Role Stream Role OutputFormat Data Sink/Source

Stream Role

Data Sink/Source InputFormat Stream Role

Data Sink

Data Sink

iStream技术概念

Stream Service:运行在YARN上的一套流计算服务,例如:实时商品处理服务 Stream Role:计算角色,即一组具备特定功能逻辑的Worker组合

Data Source:计算服务的流式数据来源,可被切分为多个DataSplit,一个Worker可以读取多个Splits。例如:数据库集群binlog服务,分布式消息队列

Data Sink:计算服务的数据终端,可被切分为多个Data Partition,一个Worker可以向多个Partition分发写入。例如:数据库集群,分布式消息队列

In/OutputFormat:控制Stream Role如何访问Data Source/Sink,不同存储介质的Source/Sink可以通过配套的In/OutputFormat来接入

iStream主要特性

计算和存储层分离,可灵活搭配消息队列计算拓扑开放,可以根据业务变化动态调整具备流处理进度管理能力,进度可视化以及监控报警具备弹性调度能力,可根据进度动态调整计算资源数量服务Metrics自动记录到OpenTSDB中,可WebUI查看类似MR Streaming方式,支持多语言编程可与MR等模型共享Hadoop集群,无需单独集群部署

阿里全网商品搜索系统架构互联网阿里商品库搜索应用

网页抓取

网页抽取

实时同步

搜索引擎

网页选取

电商网页库

实时商品处理

阿里电商网页库存储方案 发展历程 2010年上线,学习Google网页库Bigtable存储方案,决定采用

开源的HBase作为存储引擎 HBase经历了0.25,0.26,0.90,0.92,0.94(当前),5月将升级到0.98

集群规模从30多台持续升级到300多台 Region数从1000多个 …… 此处隐藏:2675字,全部文档内容请下载后查看。喜欢就下载吧 ……

DTCC2014:Hadoop生态技术在阿里全网商品搜索实战.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219