六、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的安装配置部署
- 安装
上传压缩包
解压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
- 配置部署
配置环境变量:
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
版权归原作者 卡莫纳王牌枪神 所有, 如有侵权,请联系我们删除。