实时大数据技术flink概述和部署

举报
tea_year 发表于 2025/08/30 16:25:52 2025/08/30
【摘要】 一、Flink概述Flink起源于一个名为Stratosphere的研究项目,目的是建立下一代大数据分析平台,于2014年4月16日成为Apache孵化器项目。Apache Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,它基于同一个Flink流式执行模型(streaming execution model),能够支持流处理和批处理两种应用类型。由于流处理和批处理所提供...

一、Flink概述

Flink起源于一个名为Stratosphere的研究项目,目的是建立下一代大数据分析平台,于2014年4月16日成为Apache孵化器项目。

Apache Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,它基于同一个Flink流式执行模型(streaming execution model),能够支持流处理和批处理两种应用类型。

由于流处理和批处理所提供的SLA(服务等级协议)是完全不相同, 流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常是分别给出两套实现方法,或者通过一个独立的开源框架来实现其中每一种处理方案。

比较典型的有:实现批处理的开源方案有MapReduce、Spark;实现流处理的开源方案有Storm;Spark的Streaming 其实本质上也是微批处理。

Flink在实现流处理和批处理时,与传统的一些方案完全不同,它从另一个视角看待流处理和批处理,将二者统一起来:

Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的;

批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。

Flink 在流式计算方面的优势是开源领域"无人能及"的。

1、Flink发展史

image-20230607215837915.png


2、Flink官方介绍

https://flink.apache.org/zh/

image-20230607215221305.png



3、Flink的应用场景

image-20230607220845254.png


可以看到,各种行业的众多公司都在使用Flink。具体来看,一些行业中的典型应用有:

  1. 电商和市场营销

举例:实时数据报表、广告投放、实时推荐

  1. 物联网(IOT)

举例:传感器实时数据采集和显示、实时报警,交通运输业

  1. 物流配送和服务业

举例:订单状态实时更新、通知信息推送

  1. 银行和金融业

举例:实时结算和通知推送,实时检测异常行为


二、Flink安装部署

  • 前置说明

    Flink1.13版本--2020年发布的里程碑版本


Standalone独立集群模式

  1. 上传Flink安装包,解压,配置环境变量

[root@hadoop10 modules]# tar -zxf flink-1.13.6-bin-scala_2.11.tgz -C /opt/installs/
[root@hadoop10 installs]# mv flink-1.13.6/ flink
[root@hadoop10 installs]# vim /etc/profile
export FLINK_HOME=/opt/installs/flink
export PATH=$PATH:$FLINK_HOME/bin
  1. 修改配置文件

vim /opt/installs/flink/conf/flink-conf.yaml

jobmanager.rpc.address: hadoop11
taskmanager.numberOfTaskSlots: 2
web.submit.enable: true

#历史服务器
jobmanager.archive.fs.dir: hdfs://hadoop11:8020/flink/completed-jobs/
historyserver.web.address: hadoop11
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://hadoop11:8020/flink/completed-jobs/

vim conf/masters

hadoop11:8081

vim conf/workers

hadoop11
hadoop12
hadoop13

配置hadoop环境变量,方便后续flink找到hadoop

vim /etc/profile

export HADOOP_CONF_DIR=/opt/installs/hadoop3.1.4/etc/hadoop


将资料下的flink-shaded-hadoop-2-uber-2.7.5-10.0.jar放到flink的lib目录下


  1. 分发

scp -r /opt/installs/flink hadoop12:/opt/installs/flink
scp -r /opt/installs/flink hadoop13:/opt/installs/flink

三、测试

start-dfs.sh
#启动集群
start-cluster.sh
#启动历史服务器
historyserver.sh start


观察webUI

http://hadoop11:8081/#/overview --- Flink集群管理界面

http://hadoop11:8082/#/overview --- Flink历史服务器管理界面


 提交官方示例

flink run  /opt/installs/flink/examples/batch/WordCount.jar

flink run /opt/installs/flink/examples/batch/WordCount.jar --input 输入数据路径 --output 输出数据路径


停止集群

stop-cluster.sh


总结

Apache Flink 是一个分布式系统,它需要计算资源来执行应用程序。Flink 集成了所有常见的集群资源管理器,例如 Hadoop YARN、 Apache Mesos 和 Kubernetes,但同时也可以作为独立集群运行。
Flink 被设计为能够很好地工作在上述每个资源管理器中,这是通过资源管理器特定(resource-manager-specific)的部署模式实现的。
Flink 可以采用与当前资源管理器相适应的方式进行交互。
部署 Flink 应用程序时,Flink 会根据应用程序配置的并行性自动标识所需的资源,并从资源管理器请求这些资源。
在发生故障的情况下,Flink 通过请求新资源来替换发生故障的容器。
提交或控制应用程序的所有通信都是通过 REST 调用进行的,这可以简化 Flink 与各种环境中的集成。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。