企业实践专场
14:00 字节跳动
相关背景
- 架构:
User | 第三方平台
Stream Compute Platform
Flink SQL | Streaming | Flink Batch
YARN
-
规模
1w+ machine
100+ Yarn Cluster
100+ User
1k+ Streaming
1w+ flink batch -
应用场景
- 数仓平台
- 风控和安全
- 机器学习
- 视频
- 广告
-
核心关注
图片.png
Flink SQL
- 定制化分支迁移开源分支 从1.5-1.9,Flink 1.9 SQL上线
- 升级:版本升级
- 验证
- 扩展:wartermark,customize,计算列,多source
- 平台化:集写sql,解析,测试,上线为一体的平台
- 上线:迁移历史任务、推广新业务
- flink SQL 扩展
- Source/Sink:Kafka、redis、Mysql、ES,ClickHouse,Stdin
- Dimension Table:Redis、mysql
- Format:JSON、Protobuf、binlog
- create function/View/Resource
- Customize Watermark
- Computed Column
Task 调度优化
- 需求
- 分配CONTAINER时,尽可能选择cpu/mem比较空闲的机器
- 针对IO密集型作业,希望Container尽可能打散
- Deploy Task时,希望Task在TM中分配均衡
- YARN GANG调度
- 一次分配请求返回所有资源或没有资源
- 为所有应用调度而不是为节点调度
- 低延迟
- 全局视野
- 强约束,例如:属性,负载
- 弱约束,列入:属性,负载,Container打散,Quotoa平均
Flink Docker化
- 需求
- 使用python udf,包依赖管理需求强烈
- 磁盘空间隔离问题
- 镜像服务是P2P2分发模式,加快container初始化速度
Flink 其他优化
- 作业默认重启从checkpoint恢复
- 异步接口启动TM,多线程并发,超时重置+黑名单
- Client端加载机制与cluster端不同
- VCORE支持千分之一单位
Flink 在字节跳动未来展望
- Flink Streaming
- 推动所有Flink Job Docker化
- 支持Flink job横向扩展
- SQL
- 任务达到50%
- 探索Steam/Batch应用场景
- Batch
- 推测执行,提升稳定性
- Flink Gelly支持全图离线计算场景
14:40 快手
Flink在快手应用场景及规模
卡顿率,中断率等监控
活跃、新增、留存指标
直播
快手实时多维分析平台
- 数据量:每天百亿级别
Flink+Kudu
借鉴Kylin思想
可以用于计算UV
SlimBase——更省IO、嵌入式的共享state存储
广告推荐:
- 广告推荐产生VIEW LOG,广告点击产生CLICK LOG
- 两份log合并发送给kafka——>flink,合并后生成training sample
问题:会出现巨大的磁盘IO:Compaction
解决方法:- 直接落地到共享存储
- 尝试使用更节省IO的compaction策略
人工智能专场
15:40 携程tensorflow+flink监控平台
背景
- 规则告警的缺陷
- 配置复杂
- 效果差
- 维护成本高
Prophet
实时一站式异常检测解决方案
- 基于时间序列的数据
- 以平台为介入对象、
-
基于机器学习算法实现异常计算
图片.png

选择flink原因:高效状态管理、丰富的窗口支持、支持多种时间语义、支持不同级别的容错语义
用户配置监控指标,平台同步到prophet,发起tensorflow模型训练,上传到hdfs,更新配置后启动flink加载模型,同步落到时序数据库,消费kafka过模型而后产生告警,平台消费kafka产生告警
智能化与实时化
- 智能化挑战:
- 负样本比较少:生产问题比较少
- 业务指标类型比较多:订单、支付等
- 业务指标形态多:周期波动、稳定、非周期
-
深度学习算法选择
图片.png
-
离线模型训练
图片.png
-
数据实时消费与预测
图片.png
-
数据替换与插补
图片.png
-
实时异常检测
图片.png
异常举例:
节假日场景:需要维护节假日信息、每个节假日对应时间序列的影响程度不同、提取指标2年内节假日期间的数据、计算出相似度最高的4个日期、组合数据重新训练模型

平台现状
业务线负载16条、业务类型7种、监控指标数10k+、接入平台数10+、故障覆盖率95%、报警准确率75%、告警延迟ms、告警数量降低10倍

遭遇挑战
资源消耗大、节假日影响大、无法适用于全部场景
——>通用模型迫在眉睫
——>节假日算法上限
——>覆盖全部监控平台
数据仓库
16:30 菜鸟供应链实时数据架构演进
问题

2016-2017年的升级:模型分层,多次汇总,充分复用公共中间层模型



计算引擎从Jstorm,Spark迁移到Flink。2017年迁移的时候基于flink(Blink) SQL、retraction、cep、autoscaling、batch等等。
统一数据服务的中间件

跨源数据查询
服务保障升级

其他技术探索
- 实时压测
- 过程监控
- 资源管理
- 数据质量
网友评论