与Flink打交道(1)——初识

Flink 是一个面向分布式数据流处理批量数据处理的开源计算平台。和 Spark 类似,两者都希望提供一个统一功能的计算平台给用户,都在尝试建立一个统一的平台以运行批量,流式,交互式,图处理,机器学习等应用。

来历:2014年后迅速成为Apache 的顶级项目之一

特点:流处理:低延迟、Exactly-once保证; 批处理:高吞吐、高效处理

优势:

  • 支持高度灵活的窗口操作(滑动、滚动、session窗口)
  • 支持有状态计算的Exactiy-once 语义
  • 提供DataStream API和DataSet API
  • Flink把批处理认为是一种有界的流处理

  • Deployment层:涉及Flink部署模式(本地、集群(Standalone/YARN)、云(GCE/EC2))

                       ——YARN 通用的资源管理系统,进行资源调度

  • RunTime层:为上层API提供基础服务,提供Flink计算的核心实现(分布式Stream\JobGraph到ExecutionGraphd 映射、调度等)
  • API层:包括面向流处理的DataStream API;面向批处理的DataSet API
  • Libaries层:API之上的特定应用的实现

Flink分布式运行环境

基本架构

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

  • JobManager:Flink系统的协调者,负责接收Flink Job,调度组成Job的多个Task执行收集job的状态信息,并管理Flink集群中从节点TaskManager
  • TaskManager:负责执行计算的Worker,在其上执行Flink Job的一组Task;TaskManager负责管理其所在节点上的资源信息。内存、磁盘、网络,在启动时候将资源的状态向JobManager汇报
  • Client :用户提交一个Flink程序时,会先创建一个Client,它对用户提交的Flink程序进行处理,组装一个jobGraph,并以jobGraph的形式提交到Flink集群

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

 流——>输入(窗口数据);转换——>对数据的具体操作(map、reduce)

Flink的常用算子

DataStream

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值