实时离线平台Pora介绍@2015

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
推荐全链路深度定制开发平台,高级版 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
简介:

概述

      Pora是Personal Offline Realtime Analyze的简称。

      几年前,淘宝的搜索结果已经不再千人一面的商品排序,而是深度融合了用户的个性化偏好的搜索结果。而实时变化的用户行为,能帮助算法更好地预测用户接下来的个性化偏好。为此需要一个系统能实时地获取用户行为,并支持算法实时修改用户或商品的个性化信息。这个系统开始了,叫做Pora。

      整个搜索pipeline上看,Pora位于引擎的离线部分。设计Pora的一个目标是实时处理流数据。因此Pora必须同时具备海量数据处理(高吞吐)和实时(低延迟)。除此之外,Pora还需要成为一个平台。众多算法模块可以运行、灵活调整和实时生效。

      Pora在搜索实时计算体系的位置,见图1:

搜索实时计算体系

图1.搜索实时计算体系

 

  

Pora总体架构

     从诞生以来,Pora经过了多次演变。 最初是storm集群上开发的应用。2014年迁移到Yarn集群,IStream作为流计算框架。2015年,Pora做了Tec重构。业务不断扩展,从简单的用户维度性别个性化到商品维度个性化,再到如今同时支持用户和商品两个维度多个场景的个性化,支持实时反作弊、推荐、赛马等业务。2015年开始有在线学习框架,现有LR/FTRL算法和实时矩阵分解算法。

     目前的Pora总体架构,如下图2:

Pora总体架构

 


图2.Pora总体架构

 

2015年Pora的重要改动

1. 基于Tec重构

       原有 Pora 的核心层独立出来,称为Tec项目。Pora定位业务逻辑和算法接口,开发更简洁。Tec是轻量级实时计算框架,支持快速开发高吞吐、低延迟的实时应用。例如AliExpress(AE)搜索的离线数据库Dump业务,基于Tec实现了小时批量到秒级实时的跨越。
      
 
Tec

图3. Pora的技术堆栈

2.在线学习

      数据和模型是算法的两大核心,14年基于Pora,实现了数据的实时更新。15年在Pora上开发了基于Parameter Server架构的在线学习框架,实现了模型的实时更新。

      图3是Pora内部的在线学习框架,工作机理参考Google的DownPour SGD。特点是异步,并行,平台化。Parameter Server由Feature Worker和Hbase Model Storage实现。
      在线学习的算法,详见文章《搜索双链路实时计算体系@双11实战》[5]

在线学习框架
图3. 在线学习框架

 

3.  7*24小时运行

      iStream0.9版本开始支持热切换配置,不用重启应用。主搜Dump在2015年实现了24小时增量。这两个基础完备后,Pora之前的凌晨停顿去掉了,用户个性化,推荐数据等都是24小时运行无延迟。在日常运行,处理数据延迟在秒级,算法改动配置只需要执行热切换命令。

 

4. 性能优化

      Pora整体QPS,2014年双11峰值94万。到了2015年双11期间,峰值达到501万。2015年双11当晚的零点流量高峰,Pora各应用无延迟,完成整条链路处理是秒级。整体QPS的提升,看着只有5倍多点,如果考虑业务的增长,性能的提升是不止的。

     性能的提升,离不开离线组和莫问团队在Yarn/HDFS/iStream/HQueue/Hbase的重要优化,以及CM8/ET2集群的资源优化。这里节约篇幅,就讲一下Pora上的业务优化和系统优化。

  • 业务优化:搜索PV日志的处理链精简和存储IO优化。直接读取htable,避开HSF限流的超时。auctionProfile表的userTag维度统计,去掉不需要的业务日志。
  • 系统优化:htable的client端增加cache,双十一当天高峰时段cache的平均命中率达到85%。优化Hqueue和Htable的配置,提高IO性能。解决auction/user/sync应用混合运行的机器热点。
 

将来

     今后有新的目标,敬请期待2016年。

 

参考文献

1. 搜索双链路实时计算体系@双11实战:http://yq.aliyun.com/articles/2699

2. Google DownPour参考:http://research.google.com/archive/large_deep_networks_nips2012.html

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
7月前
|
消息中间件 存储 NoSQL
离线与实时数据开发方案
离线与实时数据开发方案
131 0
|
消息中间件 自然语言处理 容灾
实时或者准实时的说法
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本文从个人理解出发,探探实时或者准实时搜索。
1928 0
|
存储 JSON 固态存储
【离线】esrally实践总结
1.真正的离线安装esrally 2.术语介绍,官方数据集、track介绍 3.官方数据集下载 4.离线使用esrally测试现有ES测试集群 5.对比两次race(测试)的结果 6.测试时间太长怎么办? 7.报告分析
3286 2
【离线】esrally实践总结
|
7月前
|
数据挖掘
离线大数据分析的应用
离线大数据分析的应用
|
6月前
|
消息中间件 前端开发 Kafka
离线数仓(二)【用户行为日志采集平台搭建】(1)
离线数仓(二)【用户行为日志采集平台搭建】
|
6月前
|
消息中间件 数据采集 关系型数据库
离线数仓(三)【业务日志采集平台搭建】(2)
离线数仓(三)【业务日志采集平台搭建】
|
6月前
|
消息中间件 存储 JSON
离线数仓(二)【用户行为日志采集平台搭建】(2)
离线数仓(二)【用户行为日志采集平台搭建】
|
6月前
|
存储 消息中间件 Kafka
离线数仓(三)【业务日志采集平台搭建】(1)
离线数仓(三)【业务日志采集平台搭建】
|
监控 OLAP
阿里云实时数仓有什么用
阿里云实时数仓有什么用
223 1
|
分布式计算 数据可视化 数据挖掘
06 离线数据分析流程介绍
06 离线数据分析流程介绍
103 0