环境
- Flink 1.8.2
- jdk 1.8
- hadoop 2.8.5
Local模式
在Local模式下仅模拟cluster集群,仅启动JobManager完成应用的运行。JobManager进程信息如下:
启动:./bin/start-cluster.sh
停止:./bin/stop-cluster.sh
提交作业方式
./flink run -p 1 ../examples/batch/WordCount.jar
-p表示并行度
Standalone模式
集群安装
- 修改
conf/flink-conf.yaml
:jobmanager.rpc.address: swarm-manager
- 修改
conf/slaves
:
swarm-worker1
swarm-worker2 - 启动jobmanager:
然后在其他两个节点上分别启动集群,然后在浏览器中输入地址http://swarm-manager:8081
Flink On Yarn模式
第一种【yarn-session.sh(开辟资源)+flink run(提交任务)】
创建一个yarn-session,后续提交应用至该session。
该模式下,创建session以后,会启动一个Yarn applicationMaster和指定数目的Yarn Container。查看ApplicationMaster及Container进程信息可以看出,二者启动类分别为YarnAPplicationMasterRunner和YarnTaskManager。查看源码可以看出,本质上ApplicationMaster扮演的是JobManager的角色,Contaienr扮演的是TaskManager的角色,类似于启动一个Flink的集群。
然后可以通过直接提交应用至该session,由该Session负责运行应用
启动yarn的ResourceManager,NodeManager:./start-yarn.sh
启动yarn-session,~/app/flink-1.8.2$ bin/yarn-session.sh -jm 1024m -tm 1024m
控制台输出:
提交一个作业
iie4bu@swarm-manager:~/app$ flink run ./hadoop-hdfs-1.0-SNAPSHOT-shaded.jar ./flink-es.properties
浏览器中输入地址http://swarm-manager:45343
这个地址根据实际情况确定,可以看到有一个作业在运行:
这时在yarn中浏览器中输入地址http://swarm-manager:8088
,查看
第二种【flink run -m yarn-cluster(开辟资源+提交任务)】
首先按照上面第一种方式,先把yarn-session.sh进程关闭。
提交作业
~/app$ flink run -m yarn-cluster -yn 1 ./hadoop-hdfs-1.0-SNAPSHOT-shaded.jar ./flink-es.properties
其中-m yarn-cluster
表示使用yarn集群,-yn 1
表示taskmanager的数量。