美文网首页
2019-02-26

2019-02-26

作者: 桑葚凯文 | 来源:发表于2019-02-26 23:32 被阅读0次

《从 1 到 100 深入学习 Flink》--- Apache Flink 介绍

目录:

1,flink 流介绍 场景

3,flink 主要特性

4,flink 主要优点

5,总结

1,背景

Flink 是一种流式计算框架,首先理解一下什么是流呢?流就是一直在运动或者说流动的数据,它是源源不断的产生的,是无界限的。其实我们日常生活是经常接触到的。比如说,应用实时产生的日志,金融股票交易,监控平台的告警,这些都会不断的产生连续的流。

那么我为什么会接触到 Flink 呢?因为当时负责部分是规则引擎,来做规则的匹配和规则处理,通俗地将其实是预警监控平台的告警部分。首先数据接入来源于 Kafka/DataHub(阿里消息中间件),采集到的布控数据会直接往 kafka 里塞,然后告警这边需要从 kafka/datahub topic 里面实时读取到布控数据,并将读取到的布控数据做一些 聚合/转换/计算 等操作,然后将计算后的结果通过具体告警规则过滤,将符合规则的告警数据推送到 MQ 或者持久化到数据库,接着做出相应的告警措施展示,可以通过前台页面显示也可以推送到 App 等。

[图片上传失败...(image-613511-1551194924287)]

那么为什么需要监控预警平台呢?无非希望能够尽早的发现问题或者预判问题,然后把消息给告警出来,有助于客户做出相应的部署和解决。由于处理的数据都是实时产生的,并且需要实时处理告警,于是乎,我现在就在接触流式计算框架 Flink。

2,什么是 Flink

首先 Flink 是流式处理引擎,即只要数据一直在产生,计算就持续地进行,当任务执行完毕后仍会占用计算机资源。当然它还支持批处理,即在预先定义的时间内运行计算,当完成时释放计算机资源。不过 Flink 的优势还是在实时流处理上。

jg.png flink01.jpg flink02.jpg
flink 的整体架构了解:
flink03.jpg

从下至上:

1、部署:Flink 支持本地运行、YARN 管理的集群模式上运行(生产上通过 YARN 管理居多)。

2、运行:Flink 的核心是分布式流式数据引擎框架,即数据以一次一个事件的形式被处理。

3、API:DataStream、DataSet、Table、SQL API。

flink 数据流向了解:
flink04.jpg

1、Source: 数据源,Flink source 可以分为 4 类:本地集合 source、文件 source、网络套接字 source、自定义的 source。自定义的 source 常见的有 kafka、RocketMQ、RabbitMQ、DataHub等,当然可以自定义 source。

2、Transformation:数据转换操作,有 Map / FlatMap / Filter / KeyBy / Reduce / Fold / Aggregations / Window / WindowAll / Union / Window join / Split / Select / Project 等,可以将数据转换计算成你想要的数据。

3、Sink:数据接收器,Flink 将转换计算后的数据发送的地点 ,你可能需要存储下来,Flink 常见的 Sink 大概可以分为这么几类:写入文件、打印出来、写入 socket 、自定义的 sink 。自定义的 sink 常见的有 kafka、DataHub、RocketMQ、MySQL、ElasticSearch、Orcale、Redis 等,同理你也可以定义自己的 sink。

为何使用 Flink

1,分布式流式框架,计算精确,低延迟,可以支持大规模运行。

2,Flink 的容错能力是轻量级的,允许系统保持高并发。

3,Flink 可以在上千个点在大规模集群上运行。除了支持独立集群部署外,Flink 还支持 YARN。

4,Flink 在 JVM 中提供了自己的内存管理,使其独立于 Java 的默认垃圾收集器。

5,Job Manager:主进程(也称为作业管理器)协调和管理程序的执行。 它的主要功能有任务调度,管理checkpoint ,故障恢复等。

Task Manager:从 Job Manager 处接收需要部署的 Task。Task Manager 是在 JVM 中的一个或多个线程中执行任务的工作节点。 任务执行的并行性由每个 Task Manager 上可用的任务槽决定。Task Manager 的一个 Slot 代表一个可用线程,该线程具有固定的内存,注意 Slot 只对内存隔离,没有对 CPU 隔离。可以共享有更好的资源利用率。

最后

最近也没有更新文章了,现在该写起来了。这篇的话就简单介绍了下我为何接触到 Flink,以及 Flink 的一些特性和优点。在此记录,希望能够帮助大家理解一点。

相关文章

网友评论

      本文标题:2019-02-26

      本文链接:https://www.haomeiwen.com/subject/ohytuqtx.html