启动任务:
./bin/flink -h 具体看
会话模式(Session Mode)
bin/flink run -m hadoop001:8081 -p 1 -c com.sea.cbb.app.dwd.ApiRqtDetailStatsApp lib/cbb_applet_promotion-1.0-SNAPSHOT-jar-with-dependencies.jar --host 192.168.18.129
java -cp bx_cbb_applet_promotion_olap-1.0-SNAPSHOT-jar-with-dependencies.jar com.sea.cbb.app.dws.NewUserRqtStatsWithJavaApp 2>&1 & bin/flink run -m hadoop001:8081 -p 1 -c com.sea.cbb.app.ods.APIRqtLogStatsApp lib/bx_cbb_applet_promotion_olap-1.0-SNAPSHOT-jar-with-dependencies.jar bin/flink run -m hadoop001:8081 -p 1 -c com.sea.cbb.app.dwd.ApiRqtDetailStatsApp lib/bx_cbb_applet_promotion_olap-1.0-SNAPSHOT-jar-with-dependencies.jar
会话模式(YARN session) flink 1.13
( Per-job 可以参考: https://blog.csdn.net/weixin_46669856/article/details/122927506)
./bin/flink run -t yarn-per-job --detached \ -Dyarn.application.name="flink-yarn-perjob" \ -Dflink.cluster.name=flink-yarn-perjob \ -Dtaskmanager.numberOfTaskSlots=5 \ ./examples/streaming/TopSpeedWindowing.jar
说明:
./bin/flink run \ # 指定yarn的Per-job模式,-t等价于-Dexecution.target -t yarn-per-job \ # yarn应用的自定义name -Dyarn.application.name=consumerDemo \ # 未指定并行度时的默认并行度值, 该值默认为1 -Dparallelism.default=3 \ # JobManager进程的内存 -Djobmanager.memory.process.size=2048mb \ # TaskManager进程的内存 -Dtaskmanager.memory.process.size=2048mb \ # 每个TaskManager的slot数目, 最佳配比是和vCores保持一致 -Dtaskmanager.numberOfTaskSlots=2 \ # 防止日志中文乱码 -Denv.java.opts="-Dfile.encoding=UTF-8" \ # 支持火焰图, Flink1.13新特性, 默认为false, 开发和测试环境可以开启, 生产环境建议关闭 -Drest.flamegraph.enabled=true \ # 入口类 -c xxxx.MainClass \ # 提交Job的jar包 xxxx.jar
从savepoint恢复 (https://blog.csdn.net/mp9105/article/details/116984220)
和启动指令类似,只是添加了savepoint的位置 -D taskmanager.memory.flink.size: 2280m
./bin/flink run \ -t yarn-per-job \ -Djobmanager.memory.process.size=2048mb \ -Dtaskmanager.memory.process.size=2048mb \ -Dtaskmanager.numberOfTaskSlots=2 \ -Denv.java.opts="-Dfile.encoding=UTF-8" \ -Drest.flamegraph.enabled=true \ # 指定savepoint地址 --fromSavepoint hdfs://192.168.31.201:8020/test/checkpoint_test/savepoint-e28bdd-ef7febad087e \ -c com.zyx.flinkdemo.FlinkKafkaConsumerDemo \ /home/dev/flinkdemo-1.0-SNAPSHOT.jar
与cancel类似,但是可以指定savepoint的存放地址
./bin/flink stop \ -t yarn-per-job \ -Dyarn.application.id=${YarnApplicationID} \ # 指定savepoint存放位置 --savepointPath hdfs://192.168.31.201:8020/test/checkpoint_test \ ${FlinkJobID}
启动任务(flink1.13之前写法)
bin/flink run -m yarn-cluster -yn 3 -ys 3 -ynm bjsxt02 -c com.test.flink.wc.StreamWordCount ./appjars/test-1.0-SNAPSHOT.jar
参数解释
-yn,--container <arg> 表示分配容器的数量,也就是 TaskManager 的数量。 -d,--detached:设置在后台运行。 -yjm,--jobManagerMemory<arg>:设置 JobManager 的内存,单位是 MB。 -ytm,--taskManagerMemory<arg>:设置每个 TaskManager 的内存,单位是 MB。 -ynm,--name:给当前 Flink application 在 Yarn 上指定名称。 -yq,--query:显示 yarn 中可用的资源(内存、cpu 核数) -yqu,--queue<arg> :指定 yarn 资源队列 -ys,--slots<arg> :每个 TaskManager 使用的 Slot 数量。 -yz,--zookeeperNamespace<arg>:针对 HA 模式在 Zookeeper 上创建 NameSpace -yid,--applicationID<yarnAppId> : 指定 Yarn 集群上的任务 ID,附着到一个后台独立运行的 Yarn Session 中。 -s,-fromSavepoint <savepointPath> 要恢复作业的保存点的路径 的保存点的路径(例如hdfs:///flink/savepoint-1537)。)
查询所有任务
./bin/flink list
Stopping a Job Gracefully Creating a Final Savepoint(停止作业创建最终保存点): hdfs://hadoop:9000/savepoint/xxx
$ ./bin/flink stop \ --savepointPath /tmp-flink-savepoints \ $JOB_ID Suspending job "cca73232323923142324340" with a savepoint. Savepoint completed. Path: file:/tmp/flink-savepoints/savepoint-ca123-bd43f0dab
Cancelling a Job Ungracefully(暴力取消一个job):
./bin/flink cancel $JOB_ID
Starting a Job from a Savepoint(从一个保存点启动一个job):
./bin/flink run \ --detached \ --fromSavepoint /opt/my_flink-savepoints/userapp \ ./lib/userStaticApp.jar
默认情况下,从 Savepoint 恢复时将尝试将所有状态分配给新作业。
如果有状态算子被删除,则无法从 Savepoint 恢复。
你可以通过使用 run 命令设置 --allowNonRestoredState (简称:-n )来允许删除有状态算子:
$ bin/flink run -s :savepointPath -n [:runArgs]
删除 Savepoint
$ bin/flink savepoint -d :savepointPath
这将删除存储在 :savepointPath 中的 Savepoint。
请注意,还可以通过常规文件系统操作手动删除 Savepoint ,而不会影响其他 Savepoint 或 Checkpoint(请记住,每个 Savepoint 都是自包含的)。