更新时间:2024-08-03 GMT+08:00

Flink Client CLI介绍

常用CLI

Flink常用的CLI如下所示:

  1. yarn-session.sh
    • 可以使用yarn-session.sh启动一个常驻的Flink集群,接受来自客户端提交的任务。启动一个有3个TaskManager实例的Flink集群示例如下:
      bin/yarn-session.sh
    • yarn-session.sh的其他参数可以通过以下命令获取:
      bin/yarn-session.sh -help
  2. Flink
    • 使用flink命令可以提交Flink作业,作业既可以被提交到一个常驻的Flink集群上,也可以使用单机模式运行。
      • 提交到常驻Flink集群上的一个示例如下:
        bin/flink run ../examples/streaming/WindowJoin.jar

        用户在用该命令提交任务前需要先用yarn-session启动Flink集群。

      • 以yarn-cluster模式运行作业的一个示例如下:
        bin/flink run -m yarn-cluster ../examples/streaming/WindowJoin.jar

        通过参数 -m yarn-cluster使作业以yarn-cluster模式运行,该模式为指定作业单独启动一个Flink 集群来执行。

      • 列出所有的作业(包含JobID):
        bin/flink list
      • 取消作业:
        bin/flink cancel <JobID>
      • 停止作业(仅流式作业):
        bin/flink stop <JobID>

        取消和停止作业的区别如下:

        • 取消作业:执行“cancel”命令时,指定作业会立即收到cancel()方法调用ASAP。如果调用结束后作业仍然没有停止,Flink会定期开始中断执行线程直至作业停止。
        • 停止作业:“stop”命令仅适用于Flink源(source)实现了StoppableFunction接口的作业。“stop”命令会等待所有资源都正确关闭。相比“cancel”命令,“stop”停止作业的方式更为优雅,但可能导致停止作业失败。
    • flink脚本的其他参数可以通过以下命令获取:
      bin/flink --help

注意事项

  • 如果yarn-session.sh使用-z配置特定的zookeeper的namespace,则在使用flink run时必须使用-yid指出applicationID,使用-yz指出zookeeper的namespace,前后namespace保持一致。

    举例:

    bin/yarn-session.sh -z YARN101 
    bin/flink run -yid application_****_**** -yz YARN101 examples/streaming/WindowJoin.jar 
  • 如果yarn-session.sh不使用-z配置特定的zookeeper的namespace,则在使用flink run时不要使用-yz指定特定的zookeeper的namespace。

    举例:

    bin/yarn-session.sh
    bin/flink run examples/streaming/WindowJoin.jar
  • 如果使用flink run -m yarn-cluster时启动集群则可以使用-yz指定一个zookeeper的namespace。
  • 不能同时启动两个或两个以上的集群来共享一个namespace。
  • 用户在启动集群或提交作业时如果使用了-z配置项,则在删除、停止及查询作业、触发savepoint时也要使用-z配置项指明namespace。