Flink提供了命令行界面(Command-Line Interface,CLI),用于运行打包为JAR的应用程序,并对应用程序进行管理。CLI是Flink的一部分,在Flink本地模式和分布式环境下都可以使用。可以在Flink安装目录下执行bin/flink命令使用CLI,但前提条件是Flink集群的JobManager或YARN集群已经启动。CLI启动时将连接到conf/flink-config.yaml中指定的正在运行的JobManager。默认情况下,连接到从同一安装目录启动的正在运行的Flink主服务器(JobManager)。
Flink CLI命令的语法如下:
./flink <行为> [选项] [参数]
在Flink安装目录中执行bin/flink --help命令即可显示CLI所有可用的行为命令及相应选项和参数。常用行为及解析如下。
1.run
用于运行一个Flink应用程序,语法如下:
./flink run [选项] <jar文件> <参数>
run行为的选项及描述如表3-6所示。
表3-6 Flink CLI run行为常用选项介绍
以Flink自带的单词计数程序作为示例,相关运行命令如下。
运行示例程序,连接指定的JobManager(若要连接的JobManager与配置文件中指定的JobManager在同一节点,则可以省略-m选项):
$ ./bin/flink run -m centos01:8081 ./examples/batch/WordCount.jar
运行示例程序,不添加任何参数:
$ ./bin/flink run ./examples/batch/WordCount.jar
运行示例程序,添加输入和输出参数:
$ ./bin/flink run ./examples/batch/WordCount.jar \ --input file:///home/user/words.txt \ --output file:///home/user/wordcount_out
运行示例程序,指定程序入口类(main方法所在类):
$ ./bin/flink run \ -c org.apache.flink.examples.java.wordcount.WordCount \ ./examples/batch/WordCount.jar \
运行示例程序,指定并行度为6:
$ ./bin/flink run -p 6 ./examples/batch/WordCount.jar
运行示例程序,并禁用日志输出:
$ ./bin/flink run -q ./examples/batch/WordCount.jar
以分离模式运行示例程序:
$ ./bin/flink run -d ./examples/batch/WordCount.jar
以Flink Single Job模式运行示例程序:
$ ./bin/flink run -m yarn-cluster ./examples/batch/WordCount.jar \
2.info
将应用程序的优化执行计划显示为JSON字符串,语法如下:
./flink info [选项] <jar文件> <参数>
info行为的选项及描述如下:
· -c,--class <classname>:应用程序入口类(main()方法所在类)。仅当JAR文件的manifest清单中没有指定入口类时才需要。
· -p,--parallelism <parallelism>:程序运行的并行度,指定后将覆盖配置文件中的默认配置。
例如,将Flink自带的单词计数程序的优化执行计划显示为JSON字符串,命令如下:
$ ./bin/flink info ./examples/batch/WordCount.jar \ --input file:///home/user/words.txt --output file:///home/user/wordcount_out
3.list
列出计划运行和正在运行的作业,包括它们的作业ID,语法如下:
./flink list [选项]
list行为的选项及描述如表3-7所示。
表3-7 Flink CLI list行为常用选项介绍
以Flink自带的单词计数程序作为示例,相关运行命令如下。
列出计划运行和正在运行的作业,包括它们的作业ID:
$ ./bin/flink list
列出计划运行的作业,包括它们的作业ID:
$ ./bin/flink list -s
列出正在运行的作业,包括它们的作业ID:
$ ./bin/flink list -r
列出所有现有作业,包括它们的作业ID:
$ ./bin/flink list -a
列出正运行在Flink YARN Session集群中的作业:
$ ./bin/flink list -m yarn-cluster -yid <yarnApplicationID> -r
4.stop
以Savepoint的方式停止正在运行的作业(仅用于流式作业),语法如下:
$ ./bin/flink stop [选项] <作业ID>
stop行为的选项及描述如表3-8所示。
表3-8 Flink CLI stop行为常用选项介绍
5.Savepoint
关于Savepoint行为将在4.13.4节详细讲解。