1. standalone模式
- 解压安装Flink
[root@bigdata1 software]# tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /opt/module/
[root@bigdata1 module]# mv flink-1.14.0/ flink-standalone
- 进入conf修改flink-conf.yaml (cd /opt/module/flink-standalone/conf)
jobmanager.rpc.address: bigdata01
flink中有jobmanager和taskmanager
- 修改wokers(路径同上)
[root@test conf]# vim workers
bigdata01
bigdata02
bigdata03
- 分发到集群其他节点
[root@bigdata1 module]# scp -r /opt/module/flink-standalone/ bigdata02:/opt/module
[root@bigdata1 module]# scp -r /opt/module/flink-standalone/ bigdata03:/opt/module
- 启动Flink集群命令(在/opt/module/flink-standalone/下执行)
bin/start-cluster.sh
-
浏览器访问 http://bigdata01:8081 可以对flink集群和任务进行监控管理。
-
停止Flink集群命令(在/opt/module/flink-standalone/下执行)
bin/stop-cluster.sh
flink run org.example.wc.StreamingWordCount -p 1 wc.jar --host localhost --port 7777
flink list
2. Flink on Yarn模式(生产应用常用模式)
上传二进制包 解压缩 更改文件名称 配置环境变量
- 解压安装
[root@bigdata1 software]# tar -zxvf /opt/software/flink-1.14.0-bin-scala_2.12.tgz -C /opt/module/
[root@bigdata1 module]# mv flink-1.14.0/ flink-yarn
- 配置环境变量(/etc/profile)
#配置环境变量HADOOP_CLASSPATH, 如果前面已经配置可以忽略。
#export HADOOP_CLASSPATH=`hadoop classpath`
#FLINK_HOME
export FLINK_HOME=/opt/module/flink-yarn
export PATH=$PATH:$FLINK_HOME/bin
export HADOOP_CLASSPATH=`hadoop classpath`
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
- 启动Hadoop集群
Flink on Yarn模式基于Hadoop集群Yarn。
2.1 Session Cluster (内存集中管理模式)
Session-Cluster模式需要先启动集群,然后再提交作业,接着会向yarn申请一块空间后,资源永远保持不变,无论提交多少job,这些job都会共用开始时在yarn中申请的资源。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业。
在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交。这个flink集群会常驻在yarn集群中,除非手工停止。
-
启动Hadoop集群。
-
启动yarn-session
bin/yarn-session.sh -d
使用以下命令检查是否启动成功:(任意路径)
yarn application -list
取消yarn-session
yarn application --kill application_46731628681_0001
出现 Flink session cluster 字样则说明启动成功!!
yarn-session.sh -n 2 -jm 1024 -tm 1024 -d
-jm JobManager的内存
-tm TaskManager的内存
-nm yarn的appName(现在yarn的ui上的名字)
-d 后台运行
2.2 Per Job Cluster (内存Job管理模式)
一个Job会对应一个集群,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享Dispatcher和ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。
每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管理。任务执行完成之后创建的集群也会消失。
-
启动hadoop集群
确认是否启动: jps
如果没启:执行
start-all.sh
-
该模式不启动yarn-session,直接执行job
-
测试:
yum install -y nc
nc -lk 22222
另起一个终端,执行以下命令:
flink run -m yarn-cluster /opt/module/flink-yarn/examples/streaming/SocketWindowWordCount.jar --hostname bigdata01 --port 22222
查看yarn application:
yarn application -list
若出现 Flink per-job cluster 则说明任务正在运行,成功!!
[root@master flink]# flink run -m yarn-cluster -yjm 1024 -ytm 1024 /opt/module/flink/examples/batch/WordCount.jar