最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[Flink] 基于 Flink 的实时特征平台在携程的应用

[复制链接]
跳转到指定楼层
楼主
发表于 2019-10-26 10:46:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 168主编 于 2019-10-26 10:58 编辑

本文来自7月26日在上海举行的 Flink Meetup 会议,分享来自于刘康,目前在大数据平台部从事模型生命周期相关平台开发,现在主要负责基于flink开发实时模型特征计算平台。熟悉分布式计算,在模型部署及运维方面有丰富实战经验和深入的理解,对模型的算法及训练有一定的了解。
本文主要内容如下:
  • 在公司实时特征开发的现状基础上,说明实时特征平台的开发背景、目标以及现状
  • 选择Flink作为平台计算引擎的原因
  • Flink的实践:有代表性的使用示例、为兼容Aerospike(平台的存储介质)的开发以及碰到的坑
  • 当前效果&未来规划
文章目录
  • 1 实时特征平台的开发背景、目标以及现状
    • 1.1 1、原实时特征作业的开发运维
    • 1.2 2、原实时特征作业的开发痛点
    • 1.3 3、基于整理的痛点,确定下来的平台目标
    • 1.4 4、特征平台系统架构
    • 1.5 5、平台功能展示
      • 1.5.1 平台功能展示-数据源注册
      • 1.5.2 实时特征编辑-基本信息
      • 1.5.3 实时特征编辑-数据源选择
      • 1.5.4 实时特征编辑-SQL计算
      • 1.5.5 实时特征编辑-选择输出

  • 2 选择Flink的原因
  • 3 Flink实践
    • 3.1 实践示例
    • 3.2 兼容开发
    • 3.3 碰到的坑
  • 4 平台当前效果&未来规划
  • 5 本文 PPT 下载

实时特征平台的开发背景、目标以及现状1、原实时特征作业的开发运维
1.1、选择实时计算平台:依据项目的性能指标要求(latency,throughput等),在已有的实时计算平台:Storm Spark flink进行选择
1.2、主要的开发运维过程:
  • 80%以上的作业需要用到消息队列数据源,但是消息队列为非结构化数据且没有统一的数据字典。所以需要通过消费对应的topic,解析消息并确定所需的内容
  • 基于需求中的场景,设计开发计算逻辑
  • 在实时数据不能完全满足数据需求的情况,另外开发单独的离线作业以及融合逻辑;
    例如:在需要30天数据的场景下,但消息队列中只有七天内的数据时(kafka中消息的默认保留时间),剩下23天就需要用离线数据来补充。
  • 设计开发数据的校验和纠错逻辑
  • 消息的传输需要依赖网络,消息丢失和超时难以完全避免,所以需要有一个校验和纠错的逻辑。
  • 测试上线
  • 监控和预警
2、原实时特征作业的开发痛点
  • 消息队列数据源结构没有统一的数据字典
  • 特征计算逻辑高度定制化,开发测试周期长
  • 实时数据不能满足需求时,需要定制离线作业和融合逻辑
  • 校验和纠错方案没有形成最佳实践,实际效果比较依赖个人能力
  • 监控和预警方案需要基于业务逻辑定制
3、基于整理的痛点,确定下来的平台目标
  • 实时数据字典:提供统一的数据源注册、管理功能,支持单一结构消息的
    topic和包含多种不同结构消息的topic
  • 逻辑抽象:抽象为SQL,减少工作量&降低使用门槛
  • 特征融合:提供融合特征的功能,解决实时特征不能完全满足数据需求的情况
  • 数据校验和纠错:提供利用离线数据校验和纠错实时特征的功能
  • 实时计算延迟:ms级
  • 实时计算容错:端到端 exactly-once
  • 统一的监控预警和HA方案
4、特征平台系统架构

如果想及时了解Spark、hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

现在的架构是标准lamda架构,离线部分由spark sql + dataX组成。现在使用的是KV存储系统Aerospike,跟redis的主要区别是使用SSD作为主存,我们压测下来大部分场景读写性能跟redis在同一个数据量级。
实时部分:使用flink作为计算引擎,介绍一下用户的使用方式:
  • 注册数据源:目前支持的实时数据源主要是Kafka和Aerospike,其中Aerospike中的数据如果是在平台上配置的离线或者实时特征,会进行自动注册。Kafka数据源需要上传对应的schemaSample文件
  • 计算逻辑:通过SQL表达
  • 定义输出:定义输出的Aerospike表和可能需要的Kafka Topic,用于推送Update或者Insert的数据的key
用户完成上面的操作后,平台将所有信息写入到json配置文件。下一步平台将配置文件和之前准备好的flinkTemplate.jar(包含所有平台所需的flink功能)提交给yarn,启动flink job。
5、平台功能展示平台功能展示-数据源注册

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

实时特征编辑-基本信息

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

实时特征编辑-数据源选择

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

实时特征编辑-SQL计算

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

实时特征编辑-选择输出

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

选择Flink的原因
我们下面一个我们说一下我们选择flink来做这个特征平台的原因。

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

分为三个维度:最高延迟、容错、sql功能成熟度
  • 延迟:storm和flink是纯流式,最低可以达到毫秒级的延迟。spark的纯流式机制是continuous模式,也可以达最低毫秒级的延迟,
  • 容错:storm使用异或ack的模式,支持atLeastOnce。消息重复解决不。spark通过checkpoint和WAL来提供exactlyOnce。flink通过checkpoint和SavePoint来做到exactlyOnce。
  • sql成熟度:storm现在的版本中SQL还在一个实验阶段,不支持聚合和join。spark现在可以提供绝大部分功能,不支持distinct、limit和聚合结果的order by。flink现在社区版中提供的sql,不支持distinct aggregate
Flink实践实践示例

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

兼容开发
flink现在没有对Aerospike提供读写支持,所以需要二次开发

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

碰到的坑

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

平台当前效果&未来规划
当前效果:将实时特征上线周期从原平均3天-5天降至小时级。
未来规划:
  • 完善特征平台的功能:融合特征等
  • 简化步骤,提高用户体验
  • 根据需求,进一步完善SQL的功能例如支持win的开始时间offset,可以通过countTrigger的win等
下一步的规划是通过sql或者DSL来描述模型部署和模型训练

如果想及时了解Spark、Hadoop或者Hbase相关的文章

本文 PPT 下载
请关注168大数据公众号回复"Flink"获得提取码
楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-7 01:09

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表