hadoop 3.x大数据集群搭建系列5-安装Flink

2022-11-27  本文已影响0人  只是甲

一. 下载Flink安装包并解压

cd /home/software
https://archive.apache.org/dist/flink/flink-1.14.5/flink-1.14.5-bin-scala_2.12.tgz

tar -xvf flink-1.14.5-bin-scala_2.12.tgz -C /home

二. 修改配置

2.1 用户环境变量

vi /etc/profile
export FLINK_HOME=/home/flink-1.14.5
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$FLINK_HOME/bin

2.2 flink-conf.yaml

前面三个只要放开就好,第四个指定zk复用(相当于 hp5:2181,hp6:2181,hp7:2181,带目录是因为zk集群不止给flink用还有kafka等)

hdfs dfs -mkdir /flink-cluster
hdfs dfs -mkdir -p /vmcluster/flink/ha/
hdfs dfs -mkdir -p /vmcluster/flink-checkpoints
hdfs dfs -mkdir -p /vmcluster/flink-savepoints
hdfs dfs -mkdir -p /vmcluster/completed-jobs/
hdfs dfs -mkdir -p /vmcluster/flink/ha/flink-cluster
cd /home/flink-1.14.5/conf/
vi flink-conf.yaml
jobmanager.rpc.address: hp5
jobmanager.rpc.port: 6123
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 3
parallelism.default: 1
high-availability: zookeeper
high-availability.cluster-id: /flink-cluster
high-availability.storageDir: hdfs://hp5:8020/vmcluster/flink/ha/
high-availability.zookeeper.quorum: hp5:2181,hp6:2181,hp7:2181
state.backend: filesystem
state.checkpoints.dir: hdfs://hp5:8020/vmcluster/flink-checkpoints
state.savepoints.dir: hdfs://hp5:8020/vmcluster/flink-savepoints
jobmanager.execution.failover-strategy: region
jobmanager.archive.fs.dir: hdfs://hp5:8020/vmcluster/completed-jobs/
historyserver.archive.fs.dir: hdfs://hp5:8020/vmcluster/completed-jobs/
classloader.check-leaked-classloader: false

hdfs路径:
此处是hp5:8020
具体参考core-site.xml配置文件中的fs.default.name属性

2.3 配置${FLINK_HOME}/conf/masters文件

cd ${FLINK_HOME}/conf/
vi masters
hp5:8081

2.4 配置${FLINK_HOME}/conf/workers文件

cd ${FLINK_HOME}/conf/
vi workers
hp5
hp6
hp7

2.5 将flink目录传到其它节点

scp -r /home/flink-1.14.5 root@hp6:/home/
scp -r /home/flink-1.14.5 root@hp7:/home/

三. flink Standalone部署模式

3.1 启动flink Standalone

cd /home/flink-1.14.5/bin/
./start-cluster.sh 
image.png

3.2 测试运行Flink程序

flink run /home/flink-1.14.5/examples/streaming/TopSpeedWindowing.jar   
image.png

web页面查看:
8081是默认端口

http://hp5:8081/
image.png

四. flink on yarn部署模式

注意:
确保hdfs和yarn集群运行正常。

4.1 Application Mode

部署服务是一个消耗资源比较大的服务,并且很难计算出实际资源限制,Flink 1.11 引入了另外一种部署选项 Application Mode, 该模式允许更加轻量级,可扩展的应用提交进程,将之前客户端的应用部署能力均匀分散到集群的每个节点上。由于每个应用程序有一个JobManager,因此可以更平均地分散网络负载。Application 模式允许提交由多个Job组成的应用程序。Job执行的顺序受启动Job的调用的影响不受部署模式的影响。

Application Mode将在YARN上启动一个Flink集群,其中Application jar的main()方法将在YARN中的JobManager上执行。应用程序一完成,集群就会立即关闭。你可以手动停止集群使用yarn application -kill <ApplicationId> 或者 cancelling Flink job。

4.1.1 提交flink job

flink run-application -t yarn-application /home/flink-1.14.5/examples/streaming/TopSpeedWindowing.jar

页面提交成功后,就退出了


image.png

界面查看,yarn中有一个Flink程序在运行。


image.png

4.1.2 kill flink job

命令行形式:

yarn application -kill application_1668044595943_0012
image.png

web 界面 cancel job:

image.png

4.2 Per-Job Cluster Mode

直接提交任务给YARN,大作业的场景,使用这种方式。每个Job都有一个JobManager,每个TaskManager只有单个Job。

Per-job Cluster Mode 将在YARN上启动Flink集群,然后在本地运行提供的application jar,最后将JobGraph提交给YARN上的JobManager。如果你传递 --detached参数,client将在提交被接受后停止。

flink run -t yarn-per-job --detached /home/flink-1.14.5/examples/streaming/TopSpeedWindowing.jar

4.3 Session Mode

使用Flink中的Yarn-session(yarn客户端),会启动两个必要的服务JobManager和TaskManager。客户端通过yarn-session提交作业,yarn-session会一直启动,不停地接收客户端提交的作业,有大量的小作业,适合使用这种方式。

在session模式下,集群中的所有作业只有一个JobManager,Job 被随机分配给TaskManager。

yarn-session.sh -n 1 -jm 256 -tm 256
jps

参考:

  1. https://blog.csdn.net/qq_37334150/article/details/115068790
  2. https://blog.csdn.net/LW_GHY/article/details/118101780
  3. https://www.modb.pro/db/390882
  4. http://www.manongjc.com/detail/29-crcgzzdvnmwxwim.html
上一篇 下一篇

猜你喜欢

热点阅读