- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Flink在车联网的应用与实践
展开查看详情
1 .Flink在⻋车联⽹网的应⽤用与实践 张皓 G7 PaaS平台系统架构师 2018-09-01
2 .G7介绍 北北京总部 成都研发中⼼心 上海海⽅方案解决中⼼心 ⼴广州⽅方案解决中⼼心 70万+ 3T+ 5万+ ⻋车辆 ⽇日均数据量量 客户 22万+ 1,200+ 覆盖90%+ 运输线路路 员⼯工数量量 ⾏行行业领袖
3 . G7业务 IoT场景特点 • 传感器器数据 • 数据种类多 • 数据质量量差 • 数据低延迟 • 硬件设备100+ • 业务数量量200+ • 每天产⽣生20亿+轨迹点, 100亿+条数据
4 .⽬目录CONCENTS A B C D 实时计算选型 G7业务应⽤用案例例 实时计算平台 未来规划 开发和现状
5 .01 实时计算选型
6 .IoT架构:Fast,从Lambda到Kappa Lambda Architecture Kappa Architecture
7 .实时流计算框架选型 Google Cloud Spark Streaming, Storm Dataflow Flink Record Acks Trident Transactional Distributed snapshots Micro-Batching updates 数据保证 At least once Exactly once Exactly once Exactly once 延迟 very low High low very low Medium to High(由分 吞吐量量 Low High 布式的事务存储决定 High 的) 计算模型 Streaming Micro-batch Streaming Streaming 容错机制的开销 High Low 由分布式事务存储决定 Low 流控 Problematic Problematic Natural Natural NO(微批量量的⼤大⼩小会 应⽤用逻辑与容错的分离 Partially Yes Yes 影响语义)
8 . ⼀一致性(内部vs外部) • 内部计算⼀一致性 • end-to-end⼀一致性
9 . 背压 Back Pressure • 优雅 • MemorySegement • LocalBufferPool • NetwowrkBufferPool
10 .02 G7业务应⽤用案例例
11 .Flink⽬目前在G7的应⽤用场景 实时计算 实时ETL 统计分析
12 .实时计算业务 疲劳报警事件计算 怠速事件计算 进出区域事件计算 超速事件计算 油耗计算
13 .疲劳报警业务模型 • 根据G7的⼤大数据计算,因为疲劳 驾驶造成货⻋车事故的⽐比重占到整 个事故的20%。 根据场景判断司 机是否在疲劳驾驶。 • 根据⻋车辆⾏行行驶的⾥里里程,驾驶员⾏行行 驶的⾥里里程,驾驶时⻓长,判断是否 存在疲劳驾驶。如果存在则报警, 如果不不存在根据情况提前预警。 • 报警和预警都是下发语⾳音到货⻋车 驾驶室。 • 挑战:实时性,稳定性⾮非常⾼高
14 .疲劳报警业务流程
15 .疲劳报警Streaming模型 Tips • 算⼦子表达尽量量单⼀一 • 每个算⼦子尽量量内聚,算⼦子间尽量量低耦合 • 算⼦子打散,异步+多线程发挥更更好 • 单独设置每个算⼦子单元的并⾏行行度,性能更更优 • hash和balance根据情况选择 • 使⽤用Asynchronous I/O 调⽤用dubbo接⼝口,zuul,db,hbase等外部接⼝口
16 .实时ETL • Kafka to HDFS • Kakfa to DB (MySQL) • Kakfa to HBase • Kafka to ES • Kafka to Kafka • Source -> Transformation -> Sink
17 .统计分析 • 最近⼀一⼩小时全国各城市,⻋车辆总数,司机总数,疲劳事件, 进出区域事件,打卡次数,点熄⽕火事件…. • 设备硬件上传报⽂文,根据设备类型,设备数量量… • 实时数仓 • SQL处理理
18 .03 实时计算平台 开发与现状
19 .实时计算平台架构
20 .Yarn集群模式 • Yarn Single 模式
21 .实时计算平台展示-任务提交 • ⽤用户⾃自⼰己申请:容器器数,容 器器⼤大⼩小,slot等 • ⽤用户上传task,指定⼊入⼝口函 数 • Flink版本:1.3,1.5可⾃自选 • 管理理员审核
22 .实时计算平台展示-任务管理理
23 .实时计算平台展示-集群管理理
24 .实时计算平台展示-⽇日志和性能监控
25 .Glink-Framework框架 • 代码框架Glink-Framework • 简化pom⽂文件 • 三⽅方调⽤用集成:dubbo, zuul • 三⽅方数据库集成:mysql, redis • 多环境管理理 • 依赖版本管理理 • 代码监测⼯工具: checkstyle,pmd, findbugs
26 .平台化业务BP合作⽅方式 主要⼯工作 主要⼯工作 主要⼯工作 主要⼯工作 • 需求分析 • 核⼼心代码指导 • 运维⽀支持 • 收集需求 • Code Review • 架构设计 • 调优⽀支持 • 技术分享&培训 • 测试⽀支持 • 技术培训 • 问题排查⽀支持 • 上线⽀支持
27 . 踩坑:barrier对⻬齐造成checkpoint耗时 • 有些任务checkpoint的 alignment 时间需要60s以上
28 .踩过的坑 • 并⾏行行度太多造成barrier对⻬齐的花费时间更更⻓长,有个并⾏行行度28的⼦子 任务的对⻬齐时间超过50s • Valuestate不不能跨算⼦子共享 • flink1.3 kafka connector不不⽀支持partition增加 • 与spring整合,出现handler匹配的问题 • hadoop的包冲突造成,程序⽆无法正常启动的问题
29 .平台收益 资源利利⽤用率提⾼高 开发效率提升 ETL采集程序从1天开发, 集群cpu利利⽤用率20% 提⾼高到1⼩小时 数据处理理量量 业务覆盖⾯面⼴广 平台每天处理理数据量量 • 平台上线业务30+,预计年年内突 80亿条以上 破100+ • 服务于公司各条业务线,IoT平 台,EMS,FMS,挂⻋车,企业 解决⽅方案,SaaS,硬件部⻔门等