资讯专栏INFORMATION COLUMN

Flink入门

余学文 / 2412人阅读

摘要:简介是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。每一个数据流起始于一个或多个,并终止于一个或多个。

Flink简介

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

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

Flink 特点

现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型:流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理

Flink是完全支持流处理,也就是说作为流处理看待时输入数据流时无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。

Flink 组件栈

Deployment层

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

Runtime层

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

API层

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

Libaries层

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

Flink优势

支持高吞吐、低延迟、高性能的流处理

支持高度灵活的窗口(Window)操作

支持有状态计算的Exactly-once语义

提供DataStream API和DataSet API

Flink数据流和时间窗口
基本概念

Flink程序的基础构建模块是流(streams)与转换(transformations)。

每一个数据流起始于一个或多个source,并终止于一个或多个sink。

时间窗口

流上的聚合需要由窗口来划定范围,比如 “计算过去的5分钟” 或者 “最后100个元素的和”

窗口通常被区分为不同的类型,比如滚动窗口(没有重叠),滑动窗口(有重叠),以及会话窗口(由布活动的间隙所打断)

Flink分布式运行环境

Flink是基于Master-Slave风格的架构

Flink集群启动时,会启动一个JobManager进程、至少一个TaskManager进程

JobManager

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

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

TaskManager

实际负责执行计算的Worder,在其上执行Flink Job的一组Task

TaskManager负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源的状态向JobManager汇报

Client

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

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

Flink安装
方式一

git clone https://github.com/apache/fli...

cd flink

mav clean package -DskipTests

cd build-target

方式二

到官网下载编译版:https://flink.apache.org/down...
不同环境下到bin目录,运行start-local.bat
运行正常,访问页面:http://localhost:8081

Flink WordCount入门程序

官方推荐快速搭建一个项目:

curl https://flink.apache.org/q/qu... | bash

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71690.html

相关文章

  • 《从0到1学习Flink》—— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门

    摘要:总结本文描述了如何在电脑上安装,及运行它。相关文章从到学习介绍从到学习上搭建环境并构建运行简单程序入门从到学习配置文件详解从到学习介绍从到学习如何自定义从到学习介绍从到学习如何自定义 showImg(https://segmentfault.com/img/remote/1460000016915923?w=1920&h=1275); 准备工作 1、安装查看 Java 的版本号,推荐...

    zeyu 评论0 收藏0
  • 入门教程 | 5分钟从零构建第一个 Flink 应用

    摘要:接着我们将数据流按照单词字段即号索引字段做分组,这里可以简单地使用方法,得到一个以单词为的数据流。得到的结果数据流,将每秒输出一次这秒内每个单词出现的次数。最后一件事就是将数据流打印到控制台,并开始执行最后的调用是启动实际作业所必需的。 本文转载自 Jark’s Blog ,作者伍翀(云邪),Apache Flink Committer,阿里巴巴高级开发工程师。 本文将从开发环境准备、创建 ...

    Mike617 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<