实时数据处理架构介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6
Flink Ecosystem
Flink将流处理和批处理,将二者统—起来:Flink是完全支持流处理,也就 是说作为流处理看待时输入数据流是无界的;批处理被作为—种特殊的流 处理,只是它的输入数据流被定义为有界的。
Libraries
CEP
Event Processing
Streaming Tables
实时数据处理架构介绍
1.总体架构
2.实时数据同步-Flink
3.元数据管理 4.Butterfly-Sql计算引擎
2
技术架构
数据应用层
DBV 客户端工具 UTCS WEB 实时部分RestFul查询接口
数 据 运 算 层
CIF层-离线 CIF层存储
SparkSql
CIF层-实时
Butterfly
Runtime
Distributed Streaming Dataflow
local
Single JVM
Cluster
Standalone,YARN
Cloud
GEC,EC2
7
Flink 集群结构
Client为提交 Job 的客户端,可以是运行在任何机器上 ( 与 JobManager 环境连通即可)。提交 Job 后, Client 可 以 结束进 程 (Streaming的任务),也可以不 结束井等待结果返回。 JobManager 主要负责调度 Job 井协调 Task 做 checkpoint,职责上很像 Storm 的 Nimbus。从 Client 处接收到 Job 和 JAR 包等资源后,会生成优化 后的执行计划,井以 Task 的单元调度到各个 TaskManager 去执行。 TaskManager 在启动的时候就设置好了槽位数 ( Slot ),每个 slot 能启动一个 Task,Task 为线程。 从 JobManager 处接收需要部署的 Task,部署启动 后,与自己的上游建立 Netty 连接,接收数据井处理。 Job 的客户端,可以是运行在任何机器上 (与 JobManager 环境连通即可)。提交 Job 后,Client 可以结束进程 ( Streaming的任务),也可以不结束井 等待结果返回。
cif-rest-server
离线
HDFS存储
实时
Elasticsearch
HBase
数 据 管 控
数据加工
元数据管理
ODS2CIF
安全
数据 管理
HDFS(数据存储)
cif.schema
Azkaban
Cif-trickle
Mongdb (元数据存储)
监控
Base层
HDFS( 原始数据 )
Flink数据同步
Relational
FlinkML
Gelly
Batch Tables
Relational
Machine Learning Graph Processing
API Core Deploy
DataStream API
Stream Processing
DataSet API
Batch Processing
8
Flink DAG
StreamGraph:是根据用户通 过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。
JobGraph : StreamGraph 经过优化后生成了 JobGraph,提交给 JobManager 的数据结构。主要的优化为,将多个符合条件的节点 chain 在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。
12
Flink WaterMake
问题:
1.消息本身带有时间戳,用户希望按照消息本身的时间特性进行分段处理。
2.由千不同节点的时钟可能不同,以及消息在流经各个节点时延迟不同,在某个节点属千 同一个时间窗口处理的消息,流到下一个节点时可能被切分到不同的时间窗口中,从而产 生不符合预期的结果。
Flink借鉴了Google的MillWheel项目,通过WaterMark来支持基 千Event Time时间窗口
当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager, JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。 TaskManager 之间以流的形式进行数据的传输。三者均为独立的 JVM 进程。
2.consumer业务流程
3.程序关闭流程
5
Flink
早在2008年,柏林理工大学—个名为Stratosphere研究性项目,此 项目主要是构建下—代大数据分析平台,0.6版本之后改名为Flink。 2014年4月16曰被Apache孵化器所接受,然后迅速成为了ASF ( Apache Software Foundation)的顶级项目之—
ExecutionGraph : JobManager 根据 JobGraph 生成ExecutionGraph。ExecutionGraph是JobGraph的井行化版本,是调度层最核心的数 据结构。
物 理 执 行 图 : JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个TaskManager 上部署 Task 后形成的“图”,井不是一个具体的 数据结构。
1. Event Time:表示事件创建时间 2. Ingestion Time:表示事件进入到 Flink的时间 3. Processing Time:表 示 某 个 Operator对事件进行处理的本地系统时间
10
Flink WaterMake
当算子通过基于Event Time的时间窗口来处理数据时,它必须在确定所有履于该时间窗口的消息全部流入此算子后 才能开始数据处理。但是由于消息可能是乱序的,所以算子无法直接确认何时所有履于该时间窗口的消息全部流入 此算子。WaterMark包含—个时间戳,Flink使用WaterMark标记所有小于该时间戳的消息都已流入,Flink的数据源 在确认所有小于某个时间戳的消息都已输出到Flink流处理系统后,会生成—个包含该时间戳的WaterMark,插入到 消息流中输出到Flink流处理系统中,Flink算子按照时间窗口缓存所有流入的消息,当算子处理到WaterMark时,它 对所有小于该WaterMark时间戳的时间窗口数据进行处理并发送到下—个算子节点,然后也将WaterMark发送到下 —个算子节点。 11
Canal-analyzer
oplog-analyzer
数据 采集
Canal数据采集
Kafplog-sync)
Mysql数据源
MongoDB数据源
1.总体架构
2.实时数据同步-Flink
3.元数据管理 4.Butterfly-Sql计算引擎
4
同步数据的痛点
1.oplogt3苗流程
相关文档
最新文档