科大讯飞 刘君——讯飞语音云实时分析架构及实践

2020-02-27 285浏览

  • 1.讯飞语音云实时分析架构与实践 科大讯飞云平台 刘君
  • 2.讯飞语音云实时分析架构与实践 CONTEXT Ⅰ.讯飞语音云概况 Ⅱ.语音云数据平台架构 Ⅲ.语音云实时分析实践 Ⅳ.集群监控、运维及优化 Ⅴ.后续发展 Q&A
  • 3.讯飞语音云实时分析架构与实践 讯飞语音云概况
  • 4.讯飞语音云概况 讯飞语音云简介 语音识别:音频转文字(分钟级到5小时) 讯飞语音云的主要能力 语音合成:文字转音频 人脸、声纹识别 业务带来的实时需求 语义理解 评测 重要指标全的双实工时带统上计下(文B的I&A大IU屏I语)音交互 实时监控集群、服务的健康状况(实时监控平台) 及时定位问题(云知道实时检索)
  • 5.讯飞语音云概况 单日数据量:20TB/500亿条
  • 6.讯飞语音云实时分析架构与实践 语音云数据平台架构
  • 7.语音云数据平台架构
  • 8.语音云数据平台架构 语音云实时数据流水线
  • 9.讯飞语音云实时分析架构与实践 语音云实时分析实践
  • 10.语音云实时分析实践 BI&大屏 实时监控平台 云知道
  • 11.语音云实时分析实践 BI&大屏 语音云数据特性 异地多活 • 三地(合肥,北京,广州)云服务 富文本 • 日志数据(2/3)+语音数据(1/3) • 日志数据复杂 乱序数据 • 单个语音会话会产生很多条日志 • 乱序到达
  • 12.语音云实时分析实践 BI&大屏 异地多活
  • 13.语音云实时分析实践 BI&大屏 异地多活 • PV • UV • 合肥Redis集群保存全量用户信息,用于实时比对 • 三地将uid及其统计指标汇总到合肥,统一计算新增、活跃 • 离线任务每天定时增量更新Redis中的全量用户信息
  • 14.语音云实时分析实践 BI&大屏 富文本 • 目标:减少数据体量 • Flume端: • memory-channel共享数据 • 在sink端做日志精简,提取有效字段(CondenseData) • 采用disruptor无锁队列来增大吞吐(5倍提升) • 实时数据清洗: • 按会话聚合(ReduceData)写 回rmq,供其他作业消费
  • 15.语音云实时分析实践 BI&大屏 乱序数据
  • 16.语音云实时分析实践 BI&大屏 乱序数据 • 实时清洗(会话聚合)——99%的会话长度在30 秒以内 • 按sid分组 • 以块为单位Cache数据,对相同sid的数据做聚合 • 对每块数据设定内存最大存活时间 • 以块为单位flush超时了的聚合数据 • 聚合后 • TPS: 80W --> 1W • 安全稳定但统计不够精确
  • 17.语音云实时分析实践 BI&大屏 乱序数据
  • 18.语音云实时分析实践 BI&大屏
  • 19.语音云实时分析实践 BI&大屏 实时监控平台 云知道
  • 20.语音云实时分析实践 实时监控平台 序列号 磁盘使用率 Cpu占用率 物理内存 虚拟内存 线程数 句柄数 进程数 Tcp链接 流量 pmc pmi 主动监控 实时 通道 Jstorm DB Redis
  • 21.语音云实时分析实践 实时监控平台 告警类别 • 服务器基础指标监控告警 • 业务主动告警 • PMC客户端异常告警(进程异常关闭) • 服务器无数据、无法ping通监控告警(宕机) 告警配置 • 告警触发条件可配置 • 报警时间可配置 • 告警通知人员可配置 • 邮件、短信告警方式
  • 22.语音云实时分析实践 集群监控和运维 • 监控总览
  • 23.语音云实时分析实践 实时监控平台 规模 • 5000+线上应用 • 100+商业应用 • 100+业务 • 100+组件 • 1500+服务器
  • 24.语音云实时分析实践 BI&大屏 实时监控平台 云知道
  • 25.语音云实时分析实践 云知道 • 实时索引 • ES(索引文件) • Hbase(原始日志)
  • 26.讯飞语音云实时分析架构与实践 集群监控、运维及优化
  • 27.集群监控、运维及优化 实时集群监控 • 用PMC来监控集群机器相关指标 • 用jstorm nimbus提供的thrift接口,获取集群作业状况,集成PMI上 报自定义的错误码 • 主要监控告警项: • nimbus重启 • supervisor重启 • 集群槽位超水位 • 单节点槽位超水位 • 某作业task频繁重启 • 某作业spout tps为0 • 数据波动告警
  • 28.集群监控、运维及优化 运维 • 隔离JStorm的ZK 和应用的ZK • 减少nimbus节点负载 • Nimbus HA、Daemon-Tools、Supervisor自检 作业优化 • 减少无意义的网络IO • 尽可能小的tuple • 对pipeline的数据可以将多个模块合并到一个task • 尽量让tuple走本地而非进程间通信 • 均匀hash避免数据热点 • 在吞吐量和时延间的选择 • 性能方面,trident < 使用ack机制普通接口 < 关掉ack机制的普 通接口
  • 29.讯飞语音云实时分析架构与实践 后续发展
  • 30.后续发展 • 日志、音频数据从源端分离 • Beam的引入
  • 31.Q&A
  • 32.THANK YOU FOR YOUR ATTENTION!