FFA 2019 day-1

企业实践专场

14:00 字节跳动

相关背景

  1. 架构:

User | 第三方平台

Stream Compute Platform

Flink SQL | Streaming | Flink Batch

YARN

  1. 规模
    1w+ machine
    100+ Yarn Cluster
    100+ User
    1k+ Streaming
    1w+ flink batch

  2. 应用场景

    1. 数仓平台
    2. 风控和安全
    3. 机器学习
    4. 视频
    5. 广告
  3. 核心关注


    FFA 2019 day-1_第1张图片
    图片.png

Flink SQL

  1. 定制化分支迁移开源分支 从1.5-1.9,Flink 1.9 SQL上线
    1. 升级:版本升级
    2. 验证
    3. 扩展:wartermark,customize,计算列,多source
    4. 平台化:集写sql,解析,测试,上线为一体的平台
    5. 上线:迁移历史任务、推广新业务
  2. flink SQL 扩展
    1. Source/Sink:Kafka、redis、Mysql、ES,ClickHouse,Stdin
    2. Dimension Table:Redis、mysql
    3. Format:JSON、Protobuf、binlog
    4. create function/View/Resource
    5. Customize Watermark
    6. Computed Column

Task 调度优化

  1. 需求
    1. 分配CONTAINER时,尽可能选择cpu/mem比较空闲的机器
    2. 针对IO密集型作业,希望Container尽可能打散
    3. Deploy Task时,希望Task在TM中分配均衡
  2. YARN GANG调度
    1. 一次分配请求返回所有资源或没有资源
    2. 为所有应用调度而不是为节点调度
      1. 低延迟
      2. 全局视野
        1. 强约束,例如:属性,负载
        2. 弱约束,列入:属性,负载,Container打散,Quotoa平均

Flink Docker化

  1. 需求
    1. 使用python udf,包依赖管理需求强烈
    2. 磁盘空间隔离问题
    3. 镜像服务是P2P2分发模式,加快container初始化速度

Flink 其他优化

  1. 作业默认重启从checkpoint恢复
  2. 异步接口启动TM,多线程并发,超时重置+黑名单
  3. Client端加载机制与cluster端不同
  4. VCORE支持千分之一单位

Flink 在字节跳动未来展望

  1. Flink Streaming
    1. 推动所有Flink Job Docker化
    2. 支持Flink job横向扩展
  2. SQL
    1. 任务达到50%
    2. 探索Steam/Batch应用场景
  3. Batch
    1. 推测执行,提升稳定性
    2. Flink Gelly支持全图离线计算场景

14:40 快手

Flink在快手应用场景及规模

卡顿率,中断率等监控
活跃、新增、留存指标
直播

快手实时多维分析平台

  1. 数据量:每天百亿级别

Flink+Kudu
借鉴Kylin思想
可以用于计算UV

SlimBase——更省IO、嵌入式的共享state存储

广告推荐:

  1. 广告推荐产生VIEW LOG,广告点击产生CLICK LOG
  2. 两份log合并发送给kafka——>flink,合并后生成training sample
    问题:会出现巨大的磁盘IO:Compaction
    解决方法:
    1. 直接落地到共享存储
    2. 尝试使用更节省IO的compaction策略

人工智能专场

15:40 携程tensorflow+flink监控平台

背景

  1. 规则告警的缺陷
    1. 配置复杂
    2. 效果差
    3. 维护成本高

Prophet

实时一站式异常检测解决方案

  1. 基于时间序列的数据
  2. 以平台为介入对象、
  3. 基于机器学习算法实现异常计算


    图片.png
图片.png

选择flink原因:高效状态管理、丰富的窗口支持、支持多种时间语义、支持不同级别的容错语义

用户配置监控指标,平台同步到prophet,发起tensorflow模型训练,上传到hdfs,更新配置后启动flink加载模型,同步落到时序数据库,消费kafka过模型而后产生告警,平台消费kafka产生告警

智能化与实时化

  1. 智能化挑战:
    1. 负样本比较少:生产问题比较少
    2. 业务指标类型比较多:订单、支付等
    3. 业务指标形态多:周期波动、稳定、非周期
  2. 深度学习算法选择


    图片.png
  1. 离线模型训练


    图片.png
  2. 数据实时消费与预测


    图片.png
  3. 数据替换与插补


    图片.png
  4. 实时异常检测


    图片.png

异常举例:
节假日场景:需要维护节假日信息、每个节假日对应时间序列的影响程度不同、提取指标2年内节假日期间的数据、计算出相似度最高的4个日期、组合数据重新训练模型


图片.png

平台现状

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


图片.png

遭遇挑战

资源消耗大、节假日影响大、无法适用于全部场景
——>通用模型迫在眉睫
——>节假日算法上限
——>覆盖全部监控平台

数据仓库

16:30 菜鸟供应链实时数据架构演进

问题

图片.png

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

图片.png

图片.png

图片.png

计算引擎从Jstorm,Spark迁移到Flink。2017年迁移的时候基于flink(Blink) SQL、retraction、cep、autoscaling、batch等等。

统一数据服务的中间件

图片.png

跨源数据查询

服务保障升级

图片.png

其他技术探索

  1. 实时压测
  2. 过程监控
  3. 资源管理
  4. 数据质量

未来:流+批+AI

你可能感兴趣的:(FFA 2019 day-1)