Flink(四)集群安装(二)
YARN模式
概念
- Flink提供了两种在yarn上运行的模式,分别为Session-Cluster和Per-Job-Cluster模式
Session-cluster模式
- Session-Cluster模式需要先启动集群,然后再提交作业,接着会向yarn申请一块空间后,资源永远保持不变,如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交
- 所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业
- 在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交,这个flink集群会常驻在yarn集群中,除非手工停止
Per-Job-Cluster模式
- 一个Job会对应一个集群,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行
- 独享Dispatcher和ResourceManager,按需接受资源申请;适合规模大长时间运行的作业
- 每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管理,任务执行完成之后创建的集群也会消失
Session-cluster模式
- 启动集群
[user@hadoop102 ~]$ myhadoop.sh start
- 启动yarn-session
[user@hadoop102 ~]$ cd /opt/module/flink-1.10.1/bin/
[user@hadoop102 bin]$ ./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d
- -n(--container):TaskManager的数量
- -s(--slots):每个TaskManager的slot数量,默认一个slot一个core,默认每个taskmanager的slot的个数为1,有时可以多一些taskmanager,做冗余
- -jm:JobManager的内存(单位MB)
- -tm:每个taskmanager的内存(单位MB)
- -nm:yarn的appName(现在yarn的ui上的名字)
- -d:后台执行
- 执行任务
[user@hadoop102 flink-1.10.1]$ ./bin/flink run -c com.hongpin.bigdata.StreamWordCount Flink-1.0-SNAPSHOT.jar --host 192.168.10.102 --port 7777
- 取消yarn-session
yarn application --kill application_ID
Per Job Cluster模式
- 不启动yarn-session,直接执行job
[user@hadoop102 flink-1.10.1]$ ./bin/flink run -m yarn-cluster -c com.hongpin.bigdata.StreamWordCount Flink-1.0-SNAPSHOT.jar --host 192.168.10.102 --port 7777
在YARN控制台查看任务状态
本地运行模式
[user@hadoop102 flink-1.10.1]$ ./bin/flink run examples/batch/WordCount.jar
Executing WordCount example with default input data set.
Use --input to specify file input.
Printing result to stdout. Use --output to specify output path.
Job has been submitted with JobID 41c41147e842a1398297abe2dec35bbd
Program execution finished
Job with JobID 41c41147e842a1398297abe2dec35bbd has finished.
Job Runtime: 907 ms
Accumulator Results:
- 8a95d00f656cb4b9397518289d919555 (java.util.ArrayList) [170 elements]
(a,5)
(action,1)
(after,1)
(against,1)
(all,2)
(and,12)
(arms,1)
(arrows,1)
(awry,1)