《刘石伟-【企业实践】Flink在字节跳动数据流的实践.pdf》由会员分享,可在线阅读,更多相关《刘石伟-【企业实践】Flink在字节跳动数据流的实践.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、刘石伟字节跳动数据流Flink 在字节跳动数据流的实践业务背景ETL 链路建设治理实践#1#2#3#4未来展望#1业务背景数据流概览客户端标准化数据清洗数据分发实时风控数据扩充数据治理FlinkFlink 实时实时 ETLETL服务端Web 端日志采集服务ABTest推荐UBA实时数仓离线数仓数据流规模#11亿+/秒 峰值流量万亿/天 埋点量PB/天存储增量3000+APP 和服务1000+Flink 任务1000+MQ Topic50w+CPU#2#3UserAction ETL需求1.延迟敏感,时效性要求高2.ETL规则动态更新EventSever ImprFeatureSourceSin
2、kJoinerFilterMapUserActionInstanceFlinkFlink ETLETL数据分流场景需求1.SLA 要求,不接受断流,数据延迟2.分流规则动态更新抖音埋点 TopicFlinkFlinkFlink电商直播短视频抖音埋点 Topic电商直播短视频Flink数据流 ETL 挑战任务规模大峰值流量超1亿/秒流量大数据链路最上游业务多&ETL 需求变化频繁业务多稳定性&时效性业务对数据延迟敏感高SLA要求埋点治理成本优化&SLA 保障综合治理#2ETL 链路建设201820202021数据流 ETL 链路发展历程PyJStorm-PyFlink Python 规则引擎 流
3、式任务托管平台PyFlink-Java Flink Groovy 规则引擎 JSON-Protobuf 一站式大数据开发平台 流量平台Java Flink Janino 规则引擎 埋点治理 链路分级数据流 Flink ETL JobInputMessageOutputMessageSourceClientClientClientSinkMQConfig CenterKafka/BMQDataBusRocketMQMetaDataUDFsRuleIndexfilterfilteractionactionTaskManagerProcessFunctionRuleEngineSinkManager
4、MetaUpdaterTargetsSourcesSchemaRules&UDFsPythonJavaGroovyJanino 测试 灰度发布 监控&报警数据流 ETL 规则引擎code=compile(expr,_file_,eval)view_ruleClassBodyEvaluatorlogic_rulephysical_ruleGroovyClassLoaderFlink 拆分任务1.灰度发布2.fail-over 影响小3.灵活部署DataBus 的应用1.降低了 MQ 集群写入请求、连接数2.Batch 大小可配置3.Zstd 压缩,写入带
5、宽降低37%TMTMTMTopic AYarn HostUnix Domain SocketDatabuszstdTopic BChannelChannel春晚活动的链路保障1.多机房容灾部署2.降级策略#3治理实践治理常见 Case1.单机问题:Yarn 队列负载不均,单机 Load 高2.Kafka问题:运维导致集群 under replica3.埋点治理:无用埋点、异常埋点消耗了大量计算、存储资源单机问题优化-Flink BacklogRescale方案实现1.在 Rescale 场景下,数据传输的 target 不唯一2.根据 Backlog size 判断下游节点的处理负载3.选择低
6、负载的下游节点 channel 发送数据方案效果1.队列 CPU 利用率提升10%2.单机 load 高导致的延迟减少80%+Credit-based flow control单机问题优化-Yarn 策略1.独立 Label 队列2.DN 设置限速,CPU 绑核3.反调度策略host 1host 2Kafka问题优化-BMQ1.存储计算分离2.支持多机房容灾3.单GB流量成本下降50%DistributedStorageCoordinatorControllerBrokerBrokerBrokerProxyProxyProxyKV StorageConsumerProducerBMQ埋点治理实践治理方式:1.全产品埋点管控2.无用埋点监控&自助下线3.埋点分级4.风控能力建设埋点注册埋点管控埋点下线埋点 SDK 上报数据流 ETL埋点分级数仓#4未来展望未来规划 计算和存储的流批一体 探索云原生架构,动态资源 rescale,提升资源利用率 高优链路保障更高的 SLA,端到端 exactly-onceTHANKS