部署方式
# Standalone模式
# YARN模式
Flink on Yarn模式在使用的时候又可以分为两种,如图3.5所示。
# 提前初始化Flink集群形式(Flink yarn-session)
第1种模式:是在YARN中提前初始化一个Flink集群(称为Flink yarn-session),开辟指定的资源,以后的Flink任务都提交到这里。这个Flink集群会常驻在YARN集群中,除非手工停止。这种方式创建的Flink集群会独占资源,不管有没有Flink任务在执行,YARN上面的其他任务都无法使用这些资源。
使用步骤 (1)创建一个一直运行的Flink集群(也可以称为Flink yarn-session)。
[root@hadoop100 flink-1.10.1]# bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 -d
注意
参数最后面的-d参数是可选项,表示是否在后台独立运行。 执行以后可以到hadoop100的8088任务界面确认是否有Flink任务成功运行。
(2)附着到一个已存在的Flink集群中。
[root@hadoop100 flink-1.10.1]# bin/yarn-session.sh -id applicationId
注意
参数最后面的applicationId是一个变量,需要获取第1步创建的Flink集群对应的applicationId信息。
(3)执行Flink任务。
[root@hadoop100 flink-1.10.1]# bin/flink run ./examples/batch/WordCount.jar
注意
WordCount.jar程序默认的输入是内置数据,默认的输出是stdout。当然也可以通过-input和-output来手动指定输入数据目录和输出数据目录。
-input hdfs://hadoop100:9000/LICENSE
-output hdfs://hadoop100:9000/wordcount-result.txt
2
# 每次新创建Flink集群形式
第2种模式:每次提交Flink任务都会创建一个新的Flink集群,每个Flink任务之间相互独立、互不影响,管理方便。任务执行完成之后创建的Flink集群也会消失,不会额外占用资源,按需使用,这使资源利用率达到最大,在工作中推荐使用这种模式。
使用步骤 提交Flink任务的同时创建Flink集群。
[root@hadoop100 flink-1.10.1]# bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024
注意
Client端(提交Flink任务的机器)必须要设置YARN_CONF_DIR、HADOOP_CONF_DIR或者HADOOP_HOME环境变量,Flink会通过这个环境变量来读取YARN和HDFS的配置信息,否则启动会失败。