0


Flink讲解与部署与yarn模式

六、Flink的安装配置部署

七、Flink on yarn

Flink是一个开源的流处理框架,由Apache软件基金会维护,其核心目标是在数据流上进行有状态计算。以下是对Flink的详细讲解:

一、Flink的基本概念

流处理:Flink可以处理无界和有界的数据流。无界流指的是数据源是持续不断的,没有明确的结束,数据可以无限地生成和流入系统;有界流则指的是数据集大小有限,有明确的开始和结束。

批处理:Flink的批处理功能可以与流处理无缝集成,使得批处理任务可以像流处理任务一样高效。

事件驱动应用:Flink支持构建事件驱动的应用程序,可以处理来自各种源的事件,如消息队列、日志文件等。

状态管理:Flink提供了多种状态后端来存储和管理状态,并支持不同的状态模式,如ValueState、ListState、ReducingState等。

二、Flink的特点

实时性:Flink专为实时数据处理设计,能够以极低的延迟处理无界数据流。

容错性:Flink提供了强大的容错机制,能够在节点故障时保证数据处理的一致性和准确性。这主要得益于其基于分布式快照技术的Checkpoints,可以将执行过程中的状态信息进行持久化存储。

可伸缩性:Flink设计为高度可伸缩,可以从单个应用扩展到数千个核心。

丰富的API和连接器:Flink提供了多种编程API(如DataStream API、Table API和SQL API)和连接器,可以方便地与各种数据源和存储系统进行集成。

支持多种编程语言:虽然Flink主要是用Java编写的,但它也支持Scala、Python等其他编程语言。

三、Flink的应用场景

实时数据分析:Flink可以实时计算各类数据指标,并利用实时结果及时调整在线系统相关策略。

监控:Flink可以实时监控数据流,对异常数据进行报警和处理。

事件处理:Flink支持构建事件驱动的应用程序,可以处理来自各种源的事件,并基于事件时间进行处理。

四、Flink的架构

Flink的架构主要包括以下几个组件:

JobManager:负责协调分布式执行,包括调度任务和协调检查点。

TaskManager:负责执行任务,并管理任务的插槽(slots)。每个TaskManager都是一个JVM进程,可以在单独的线程中执行一个或多个subtask。

Client:用于提交作业到Flink集群,并与JobManager进行交互。

五、Flink的发展

起源:Flink最初由柏林工业大学的研究人员开发,作为Stratosphere项目的一部分。

成为Apache顶级项目:2014年,Flink成为Apache软件基金会的一个顶级项目。

功能扩展:随着大数据和实时数据处理需求的增长,Flink不断发展,引入了许多扩展功能,如复杂事件处理、图计算、机器学习等。

开源社区:Flink拥有一个活跃的开源社区,不断推动其发展和完善。

Flink是一个功能强大的开源流处理框架,具有实时性、容错性、可伸缩性等特点,广泛应用于金融、电信、电子商务等领域。

六、Flink的安装配置部署

  1. 安装

上传压缩包

解压flink:(/opt/software)

tar -zxvf /opt/software/flink-1.14.0-bin-scala_2.11.tgz -C /opt/module

改名:(/opt/module)

mv /opt/module/flink-1.14.0 /opt/module/flink

  1. 配置部署

配置环境变量:

vi /etc/profile

export FLINK_HOME=/opt/module/flink

export PATH=$FLINK_HOME/bin:$PATH

生效:

source /etc/profile

修改配置文件:(/opt/module/flink/conf)

vi /opt/module/flink/conf/flink-conf.yaml

(修改)

jobmanager.rpc.address: master

jobmanager.bind-host: 0.0.0.0

taskmanager.bind-host: 0.0.0.0

taskmanager.host: master

rest.port: 8082(是注释的)(因为和sparkUI冲突 所以修改)(记得去掉注释)

rest.address: master

rest.bind-address: 0.0.0.0

vi /opt/module/flink/conf/workers

(删除localhost)

master

slave1

slave2

vi /opt/module/flink/conf/masters

(删除localhost:8081)

master:8082

复制给子节点:

scp -r /opt/module/flink/ slave1:/opt/module/flink/

scp -r /opt/module/flink/ slave2:/opt/module/flink/

scp /etc/profile slave1:/etc/profile

scp /etc/profile slave2:/etc/profile

修改子节点配置文件:

slave1:

source /etc/profile

vi /opt/module/flink/conf/flink-conf.yaml

taskmanager.host: slave1

slave2:

source /etc/profile

vi /opt/module/flink/conf/flink-conf.yaml

taskmanager.host: slave2

master:

启动集群:(/opt/module/flink)

bin/start-cluster.sh

查询进程:

jps

slave1:

查询进程:

jps

slave1:

查询进程:

jps

七、Flink on yarn

(需要关闭防火墙)

(建议把所有节点的防火墙都关闭)

systemctl stop firewalld

systemctl enable firewalld

启动hadoop:(/opt/module/hadoop)

start-all.sh

启动flink:(/opt/module/flink)

bin/start-cluster.sh

在 yarn 上以 per job 模式运行:

flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar

如果报错直接输入:

export HADOOP_CLASSPATH=hadoop classpath

在 yarn 上以 per job 模式运行:(有废话)

flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar

标签: flink 大数据

本文转载自: https://blog.csdn.net/2403_88719012/article/details/143618628
版权归原作者 卡莫纳王牌枪神 所有, 如有侵权,请联系我们删除。

“Flink讲解与部署与yarn模式”的评论:

还没有评论