
# Flink Client CLI介绍
Flink CLI详细的使用方法参考官网描述：<https://nightlies.apache.org/flink/flink-docs-release-1.7/ops/cli.html>。
#### 常用CLI
Flink常用的CLI如下所示：
1. yarn-session.sh
   - 可以使用yarn-session.sh启动一个常驻的Flink集群，接受来自客户端提交的任务。启动一个有3个TaskManager实例的Flink集群示例如下：
     ```
     bin/yarn-session.sh -n 3
     ```
     
   
   - yarn-session.sh的其他参数可以通过以下命令获取：
     ```
     bin/yarn-session.sh -help
     ```
     
    
2. Flink
   - 使用flink命令可以提交Flink作业，作业既可以被提交到一个常驻的Flink集群上，也可以使用单机模式运行。
     - 提交到常驻Flink集群上的一个示例如下：
       ```
       bin/flink run examples/streaming/WindowJoin.jar
       ```
       ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
       用户在用该命令提交任务前需要先用yarn-session启动Flink集群。
       
     
     - 以单机模式运行作业的一个示例如下：
       ```
       bin/flink run -m yarn-cluster -yn 2 examples/streaming/WindowJoin.jar
       ```
       ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
       通过参数-m yarn-cluster使作业以单机模式运行，-yn表示TaskManager的数量。
       
      
   
   - flink脚本的其他参数可以通过以下命令获取：
     ```
     bin/flink --help
     ```
     
    
 
#### 注意事项
- 如果yarn-session.sh使用-z配置特定的zookeeper的namespace，则在使用flink run时必须使用-yid指出applicationID，使用-yz指出zookeeper的namespace，前后namespace保持一致。 举例：
  ```
  bin/yarn-session.sh -n 3 -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 -n 3
  bin/flink run examples/streaming/WindowJoin.jar
  ```
  
- 如果使用flink run -m yarn-cluster时启动集群则可以使用-yz指定一个zookeeper的namespace。
- 不能同时启动两个或两个以上的集群来共享一个namespace。
- 用户在启动集群或提交作业时如果使用了-z配置项，则在删除、停止及查询作业、触发savepoint时也要使用-z配置项指明namespace。
 
