一、Standalone 模式
1.1 安装
解压 flink-1.10.0-bin-scala_2.11.tgz,进入conf目录中。
1)修改 flink/conf/flink-conf.yaml 文件:
2)修改 /conf/slaves文件:
3)分发给另外两台机子:
4)启动:
访问http://localhost:8081可以对flink集群和任务进行监控管理
命令行提交任务:
./flink run -c com.atguigu.wc.StreamWordCount –p 2 FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar --host lcoalhost –port 7777
-c 执行程序类
-p 并行度
命令行取消
./bin/flink cancel jobId
可通过
./bin/flink list 查看Jobs Id
二、Yarn 模式
Flink 提供了两种在yarn上运动的模式,分别为 Session-Cluster 和 Per-Job-Cluster模式。
1)Session-cluster 模式
Session-Cluster 模式需要先启动集群,然后提交作业,接着会向yarn 申请一块空间,资源永远保持不变。如果资源满了,下一个作业无法提交,只能等到yarn中的其中一个作业执行完成后,释放资源,下河作业才会正常提交。所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业。
在yarn中初始化一个Flink集群,开辟指定的资源,以后提交任务都向这里提交,这个Flink集群会常驻在yarn集群中,除非手动停止。
- 启动hadoop 集群
- 启动 Yarn -Session
./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:后台执行。
- 执行任务
./flink run -c com.atguigu.wc.StreamWordCount FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar --host lcoalhost –port 7777
与Standalone 模式一样。
- 可以去Yarn控制台查看任务状态
- 取消Yarn-session
yarn application --kill application_1577588252906_0001
2)Per-Job-Cluster 模式:
一个Job 会对应一个集群,每提交一个作业会根据自身的情况,都会单独向yarn 申请资源,直到作业执行完成,一个作业的失败与否并不影响下一个作业的正常提交和运行。独享Dispatcher和ResourceManager,按需接收资源申请;适合规模大长时间运行的作业。
每次提交都会创建一个新的Flink集群,任务之间会相互独立,互不影响,方便管理。任务执行完成后创建的集群也会消失。
- 启动hadoop集群
- 不用启动yarn-session 直接执行job
./flink run –m yarn-cluster -c com.atguigu.wc.StreamWordCount FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar --host lcoalhost –port 7777