zoukankan      html  css  js  c++  java
  • Flink从入门到放弃(入门篇1)-Flink是什么

    戳更多文章:

    1-Flink入门

    2-本地环境搭建&构建第一个Flink应用

    3-DataSet API

    4-DataSteam API

    5-集群部署

    6-分布式缓存

    7-重启策略

    8-Flink中的窗口

    9-Flink中的Time

    Flink时间戳和水印

    Broadcast广播变量

    FlinkTable&SQL

    Flink实战项目实时热销排行

    Flink写入RedisSink

    17-Flink消费Kafka写入Mysql

    本文是例行介绍,熟悉的直接跳过 - 鲁迅

    鲁迅: ...

    大纲

    入门篇:

     
    image

    放弃篇:

     
    image

    图片显示不了,戳这里:

    https://github.com/wangzhiwubigdata/God-Of-BigData/blob/master/Flink

    插个广告

    • 全网唯一一个从0开始帮助Java开发者转做大数据领域的公众号~

    • 公众号大数据技术与架构或者搜索import_bigdata关注,大数据学习路线最新更新,已经有很多小伙伴加入了~

     
    image

    Flink是什么

    一句话概括

    Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。

    前身

    Apache Flink 的前身是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了Apache Software Foundation的顶级项目之一。

    特点

    现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理。
    Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。

    Flink组件栈

     
    image

    )

    Deployment层

    主要涉及了Flink的部署模式,Flink支持多种部署模式:本地、集群(Standalone/YARN)、云(GCE/EC2)

     
    image

    Runtime层

    Runtime层提供了支持Flink计算的全部核心实现,比如:支持分布式Stream处理、JobGraph到ExecutionGraph的映射、调度等等,为上层API层提供基础服务

    API层

    API层主要实现了面向无界Stream的流处理和面向Batch的批处理API,其中面向流处理对应DataStream API,面向批处理对应DataSet API

    Libaries层

    • 在API层之上构建的满足特定应用的实现计算框架,也分别对应于面向流处理和面向批处理两类

    • 面向流处理支持:CEP(复杂事件处理)、基于SQL-like的操作(基于Table的关系操作)

    • 面向批处理支持:FlinkML(机器学习库)、Gelly(图处理)

    Flink的优势

    • 支持高吞吐、低延迟、高性能的流处理
    • 支持高度灵活的窗口(Window)操作
    • 支持有状态计算的Exactly-once语义
    • 提供DataStream API和DataSet API
     
    image
     
    image

    Flink基本编程模型

    • Flink程序的基础构建模块是流(streams) 与 转换(transformations)
    • 每一个数据流起始于一个或多个 source,并终止于一个或多个 sink

    下面是一个由Flink程序映射为Streaming Dataflow的示意图:

     
    image

    并行数据流示意图:

     
    image

    Flink基本架构

    • Flink是基于Master-Slave风格的架构
    • Flink集群启动时,会启动一个JobManager进程、至少一个TaskManager进程
     
    image

    JobManager

    • Flink系统的协调者,它负责接收Flink Job,调度组成Job的多个Task的执行

    • 收集Job的状态信息,并管理Flink集群中从节点TaskManager

    TaskManager

    • 实际负责执行计算的Worker,在其上执行Flink Job的一组Task
    • TaskManager负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源的状态向JobManager汇报

    Client

    • 用户提交一个Flink程序时,会首先创建一个Client,该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群

    • Client会将用户提交的Flink程序组装一个JobGraph, 并且是以JobGraph的形式提交的

    最后

    本文是例行介绍,熟悉的直接跳过。

  • 相关阅读:
    UVA11464偶数矩阵
    UVA11464偶数矩阵
    UVA11462年龄排序
    UVA11462年龄排序
    UVA11427玩纸牌(全概率+递推)
    UVA11427玩纸牌(全概率+递推)
    UVA11389巴士司机问题
    LA3644简单并查集判环
    LA3027简单带权并查集
    LA3027简单带权并查集
  • 原文地址:https://www.cnblogs.com/importbigdata/p/10779960.html
Copyright © 2011-2022 走看看