flink基础教程

一:flink初识

  1. Flink起源于Stratosphere项目,Stratosphere是在2010~2014年由3所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目,2014年4月Stratosphere的代码被复制并捐赠给了Apache软件基金会,参加这个孵化项目的初始成员是Stratosphere系统的核心开发人员,2014年12月,Flink一跃成为Apache软件基金会的顶级项目。
  2.  Flink主页在其顶部展示了该项目的理念:“Apache Flink是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架
  3. Flink将批处理(即处理有限的静态数据)视作一种特殊的流处理

            DataStream API 流式处理的接口,DataSet API 面相批处理的接口

            FlinkML:机器学习   CEP:复杂事件处理   Gelly图计算  针对流式和批处理的Table API

二:flink基本架构

2.1:JobManager 与TaskManager

    Flink运行时包含了两种类型的处理器:JobManager处理器,TaskManager处理器

2.2 无界数据流与有界数据流

无界数据流:以特定的顺序获取event,立即处理

有界数据流:处理有界流不需要有序获取,因为可以始终对有界数据集进行排序,有界的处理也称为批处理

三:flink集群搭建

 

四:flink运行架构

4.1任务提交流程

4.2 任务调度原理

4.3 TaskManager与slots

    每一个TaskManager是一个JVM进程,它可能会在独立的线程上执行一个进程或多个subtask。为了控制一个TaskManager能接收多少task,TaskManager通过task slot来进行控制(一个TaskManager至少有一个task slot)

   每个task slot 表示TaskManager拥有资源的一个固定大小的子集。假如一个TaskManager有三个slot,那么他将其内存内存分成三份给各个slot。需要注意的是,这里不涉及到CPU的隔离。

  Task Slot是静态的概念,是指TaskManager具有的并发执行的能力,可以通过taskmanager.numberOfTaskSlots进行配置,而并行度parallelism是动态概念,即TaskManager运行程序时实际使用的并发能力,可以通过paramllelism.default设置。

例:假设一共有3个TaskManager,每个TaskManager中分配3个TaskSlot,也就是每个TaskManager可以接收3 个Task,一共9个TaskSlot,如果我们设置parallelism.default=1,即运行程序的并行度为1,9个TaskSlot只用了1个,有8个空闲,因此要设置合适的并行度才可以提高效率。

五:flink DataStream API

六:Time与Window

七:EventTime与Window

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值