小米流式平台架构演进与实践

  • 时间:
  • 浏览:0
  • 来源:大发彩神IOS下载_大发神彩IOS下载官方

SQL 管理引入了另4个 External Table 的特性。假设用户在平台上选折 消费某个 Topic 的前一天,该特性会自动地获取中间提到的 Table 的 Schema 和 Format 信息,如果 显示打上去了注册 Flink Table 的逻辑;获取 Schema 时,该特性会将内部表字段类型自动转换为 Flink Table 字段类型,并自动注册为 Flink Tab 了。同去将 Connector Properties 分成三类,参数带默认值,不可不能不能 都要项要求用户填写;所有参数均采用 Map 的形式表达,非常便于后续转化为 Flink 内部的 TableDescriptor。

下图是平台实现的端到端数据监控机制。具体实现是为每个消息不是另4个时间戳 EventTime,表示你这人消息真正生成的时间,根据 EventTime 来划分时间窗口,窗口大小为一分钟,数据传输的每一跳统计当前时间窗口内接受到的消息数量,最后统计出消息的完全度。延迟是计算某一跳 ProcessTime 和 EventTime 之间的差值。

小米流式平台未来的计划主要有以下几点:

使用 Flink 对平台进行改造的设计理念如下:

夏军,小米流式平台负责人,主要负责流式计算,消息队列,大数据集成等系统的研发工作,主要包括 Flink,Spark Streaming,Storm,Kafka 等开源系统和一系列小米自研的相关系统。

不可修改的配置情況是假设消费的是 Talos 组件,没法 connector.type 一定是 talos,则该配置不都要改;而默认值是从 Topic 头部如果刚结速消费,但用户可不都要设置从尾部如果刚结速消费,你这人情況属于带默认值如果 用户可修改的配置;而许多权限信息是用户都要配置的。

Agent Source 的功能模块如下图所示。其支持 RPC、Http 协议,并可不都要通过 File 来监听本地文件,实现内存和文件双缓存,保证数据的高可靠。平台基于 RPC 协议实现了 Logger Appender 和 RPC 协议的 SDK;对于 Http 协议实现了 HttpClient;对于文件实现了 File Watcher 来对本地文件进行自动地发现和扫描,Offset Manager 自动记录 offset;Agent 机制与 K8S 环境高度整合,可不都要很容易地和后端的流式计算等相结合。

小米流式平台的愿景是为小米所有的业务线提供流式数据的一体化、平台化除理方案。具体来讲包括以下另4个方面:

下图是 Streaming Platform 3.0 版本的架构图,与 2.0 版本的采集累似 ,许多表达的高度不同。具体所含以下几只模块:

Streaming Platform 2.0 目前的大疑问主要有三点:

Streaming Platform 2.0 的优势主要有:

下图完全介绍一下 MySQL 同步的案例,场景是将 MySQL 的另4个表通过上述的机制同步到消息队列 Talos。具体流程是 Binlog 服务伪装成 MySQL 的 Slave,向 MySQL 发送 Dump binlog 请求;MySQL 收到 Dump 请求后,如果刚结速推动 Binlog 给 Binlog 服务;Binlog 服务将 binlog 以严格有序的形式转储到 Talos。以不会接入 Spark Streaming 作业,对 binlog 进行解析,解析结果写入到 Kudu 表中。目前平台支持写入到 Kudu 中的表的数量级超过 10000 个。

不是要是做三层配置管理,是为了尽将会减少用户配置的错综复杂度。Table Schema、Table Format 和 Connector 1 许多配置信息,组成了SQL DDL。将 SQL Config 返回给用户前一天,对于可修改的都要用户填写,原本便可不都要完成从内部表到 SQL DDL 的转换,红色字体表示的是用户修改的信息。

作者:夏军@小米

下图展示了流式平台的整体架构。从左到右第一列橙色主次是数据源,所含两主次,即 User 和 Database。

小米流式平台发展历史分为如下另4个阶段:

下图展示了小米的业务规模。在存储层面小米每天相当于有 1.2 万亿条消息,峰值流量可不都要达到 41000 万条每秒。转储模块仅 Talos Sink 每天转储的数据量就高达 1.6 PB,转储作业目前将近有 1.5 万个。每天的流式计算作业超过 10000 个,Flink 作业超过 1000 个,Flink 每天除理的消息量可不都要达到 7000 亿条,数据量在 1 PB 以上。

主要包括以下4个环节:

为了除理 Streaming Platform 2.0 的上述大疑问,小米进行了少许调研,也和阿里的实时计算团队做了一系列沟通和交流,最终决定将使用 Flink 来改造平台当前的流程,下面具体介绍小米流式计算平台基于Flink的实践。

SQL Config 转换为另4个 Template Job 的流程如下所示。前面填写的 Jar 包地址即该 Template 的 Jar 地址,MainClass 是该 Template Job。假设将会有了 SQL DDL,可不都要直接转打上去 Table Descriptor,如果 通过 TableFactorUtil 的 findAndCreateTableSource() 依据得到另4个 Table Source,Table Sink 的转换过程累似 。完成前两步操作后,最后进行 sqlUpdate() 操作。原本便可不都要将另4个 SQL Job 转换为最后可执行的 Job Graph 提交到集群上运行。

Talos Sink 采用了下图所示的你这人模式:

SQL Config 转换为 Job Config 的流程如下图所示。

内部表转打上去 SQL DDL 的流程如下图所示。

Job 管理提供 Job 全生命周期管理、Job 权限管理和 Job 标签管理等功能;支持Job 运行历史展示,方便用户追溯;支持 Job 情況与延迟监控,可不都要实现失败作业自动拉起。

Streaming Platform 1.0 整体是另4个级联的服务,前面包括 Scribe Agent 和 Scribe Server 的多级级联,主要用于采集数据,如果 满足离线计算和实时计算的场景。离线计算使用的是 HDFS 和 Hive,实时计算使用的是 Kafka 和 Storm。觉得你这人离线加实时的依据可不都要基本满足小米当时的业务需求,但也位于一系列的大疑问。

中间介绍了 SQL DDL 的创建过程,在将会创建的 SQL DDL 的基础上,如 Source SQL DDL 和 Sink SQL DDL,要求用户填写 SQL query 并返回给后端,后端会对 SQL 进行验证,然不会生成另4个 SQL Config,即另4个 SQL 语录的完全表达。

下图是 Talos Sink 的逻辑流程图,其基于 Spark Streaming 来实现一系列流程。最左侧是一系列 Talos Topic 的 Partition 分片,基于每个 batch 抽象公共逻辑,如 startProcessBatch() 和 stopProcessBatch(),不同 Sink 只都要实现 Write 逻辑;不同的 Sink 独立为不同的作业,除理相互影响;Sink 在 Spark Streaming 基础上进行了优化,实现了根据 Topic 流量进行动态资源调度,保证系统延迟的前提下最大限度节省资源。

小米业务线众多,从信息流,电商,广告到金融等覆盖了众多领域,小米流式平台为小米集团各业务提供一体化的流式数据除理方案,主要包括数据采集,数据集成和流式计算另4个模块。目前每天数据量达到 1.2 万亿条,实时同步任务 1.5 万,实时计算的数据 1 万亿条。

伴随着小米业务的发展,流式平台也经历三次大升级改造,满足了众多业务的各种需求。最新的一次迭代基于 Apache Flink,对于流式平台内部模块进行了彻底的重构,同去小米各业务也在由 Spark Streaming 逐步切换到 Flink。

下图展示了 Job Config 转换为 Job Graph 的过程。对于 DDL 中的 Schema、Format 和 Property 是和 Flink 中的 Table Descriptor 是一一对应的,你这人情況下只都要调用 Flink 的相关内置接口就可不都要很方便地将信息转换为 Table Descriptor,如 CreateTableSource()、RegistorTableSource() 等。通过上述过程,DDL 便可不都要注册到 Flink 系统中直接使用。对于 SQL 语录,可不都要直接使用 TableEnv 的 sqlUpdate() 可不都要完成转换。

作者介绍:

Talos Sink 和 Source 同去组合成另4个数据流服务,主要负责将 Talos 的数据以极低的延迟转储到许多系统中;Sink 是一套标准化的服务,但其缺陷定制化,后续会基于 Flink SQL 重构 Talos Sink 模块。

为了除理 Streaming Platform 1.0 的大疑问,小米推出了 Streaming Platform 2.0 版本。该版本引入了 Talos,将其作为数据缓存区来进行流式数据的存储,左侧是多种多样的数据源,右侧是多种多样的 Sink,即将原本的级联架构转打上去星型架构,优点是方便地扩展。

猜你喜欢

1500左右 买哪个手机 性价比高点

本回答由明星微博 推荐你对你你你这个 回答的评价是?扫描二维码下载小米5不错,1599,性价比高很糙推荐ZUKZ2搭载高通骁龙82014nmKryo四核64位,最高2.15

2020-03-22

目前华为的哪款手机性价比最高

4、系统:搭载2.4GHz八核麒麟9500防止器,是顶级旗舰芯片,天生就越来越快,采用新一代EMUI5.1系统,成功实现了性能提升与功耗平衡的再次突破,带来难以想象的高速与流畅

2020-03-22

天猫天猫,今年双11哪些最值得买?

贝因美菁爱3段奶粉价格1740到手价12400群克隆这条信息₳YrJTYsK187o₳后打开手淘百草味零食大礼包-千玺版价格299到手价138群克隆这条信息$2vxrYsKaK

2020-03-22

平安哪些产品性价比高?

收起更多回答(2) 我来答扫描二维码下载下载百度知道APP,抢鲜体验平安有全都的产品性价比有的是 很高的,关键有你在适合哪个产品,那个产品可是我性价比最高的,适合此人 的

2020-03-22

求推荐几款性价比高的手机!

1.屏幕:5.8英寸(直角)/5.6英寸(圆角)双曲面SuperAMOLED屏幕,分辨率为2220x101000(FHD+)。3.外壳颜色:谜夜黑、勃艮第红(具体以销售为准)。

2020-03-21