
# 运行FlinkSql作业
用户可将自己开发的程序提交到MRS中，执行程序并获取结果，本章节指导您如何在MRS集群中提交一个FlinkSql作业。
FlinkSql作业用于查询和分析数据，包括SQL语句和Script脚本两种形式。如果SQL语句涉及敏感信息，也可使用脚本文件方式提交。
#### 约束与限制
MRS 3.6.0及之后版本的集群支持通过MRS管理控制台提交FlinkSql作业。
#### 前提条件
- 用户已经将作业所需的程序包和数据文件上传至OBS或HDFS文件系统中。
- 如果作业程序需要读取以及分析OBS文件系统中的数据，需要先配置MRS集群的存算分离，请参考[配置MRS集群存算分离](https://support.huaweicloud.com/usermanual-mrs/mrs_01_248987.html)。
 
#### 提交作业
用户可通过管理控制台在线创建并运行作业，也可以通过MRS集群的FlinkServer WebUI在线编辑开发Flink作业。
- [通过管理控制台提交作业]
  1. 登录[MRS管理控制台](https://console.huaweicloud.com/mrs/)。
  
  2. 选择"现有集群"，选中一个待操作的运行中的集群并单击集群名称，进入集群概览信息页面。
  
  3. 在"概览"页签中，单击"IAM用户同步"右侧的"同步"进行IAM用户同步。 
     集群开启Kerberos认证时需执行该步骤，若集群未开启Kerberos认证，无需执行本步骤。
     **IAM用户同步完成后，请等待5分钟，再进行提交作业，更多IAM用户同步说明请参考[IAM用户同步MRS集群说明](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0495.html)。**
     
     
  
  4. 单击"作业管理"，在作业列表界面单击"添加"。
  
  5. "作业类型"选择"FlinkSql"并参考[表1]配置FlinkSql作业信息。
     
      表1作业配置信息 
     | **参数** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | **示例**                           |
     |:---|:---|:---|
     | 作业名称   | 作业名称，只能由字母、数字、中划线和下划线组成，并且长度为1～64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | FlinkSql                         |
     | SQL类型  | SQL语句提交类型。 - SQL：直接运行手动输入的SQL语句。  - Script：以加载HDFS或者OBS中的SQL脚本文件运行SQL。                                                                                                                                                                                                                                                                                                                                                                                                             | SQL                              |
     | SQL语句  | "SQL类型"参数为"SQL"时参数有效，请输入待运行的SQL语句，确保输入语句正确。 如果同时需要提交多条语句并执行，可使用";"分隔不同语句。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                |
     | SQL文件  | "SQL类型"参数为"Script"时参数有效，待执行SQL文件的路径，可直接手动输入地址路径，也可单击"HDFS"或者"OBS"选择文件。 - 路径地址最多为1023字符，不能包含;\|\&\>,\<'$特殊字符，且不可为空或全空格。  - OBS程序路径地址以"obs://"开头，HDFS程序路径地址以"hdfs://hacluster"开头，例如"hdfs://hacluster/user/*XXX*.jar"。    - FlinkScript文件需要以".sql"结尾。                                                      | obs://wordcount/program/test.sql |
     | 运行程序参数 | 可选参数，为本次执行的作业配置相关优化参数（例如线程、内存、CPU核数等），用于优化资源使用效率，提升作业的执行性能。 FlinkSql作业常用的运行程序参数如[表2]所示，可根据执行程序及集群资源情况进行配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | -                                |
     | 服务配置参数 | 可选参数，用于为本次执行的作业修改服务配置参数。 该参数的修改仅适用于本次执行的作业，如需对集群永久生效，请参考[修改MRS集群组件配置参数](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0204.html)进行集群组件配置参数的修改。 如需添加多个参数，请单击右侧![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002229587009.png)增加。 例如增加以下服务配置参数： - fs.obs.access.key：通过AK/SK方式访问OBS时访问OBS的密钥ID。  - fs.obs.secret.key：通过AK/SK方式访问OBS时访问OBS与密钥ID对应的密钥。   | -                                |
        
      表2FlinkSql作业运行程序参数 
     | **参数** | **描述**                                                   | **示例**               |
     |:---|:---|:---|
     | -ytm   | 设置每个TaskManager容器的内存（单位可选，默认单位MB）。                       | 1024                 |
     | -yjm   | 设置JobManager容器内存（单位可选，默认单位MB）。                           | 1024                 |
     | -ys    | 设置TaskManager的核数。                                        | 2                    |
     | -ynm   | 自定义Yarn上应用程序名称。                                          | test                 |
     | -c     | 设置程序入口点的类名（如"main"或"getPlan()"方法）。该参数仅在jar程序未指定其清单的类时需要。 | com.bigdata.mrs.test |
        
     
     
  
  6. 确认作业配置信息，单击"确定"，完成作业的新增。
  
  7. 作业提交成功中，可在作业列表中查看作业运行状态及执行结果，等待作业状态变为"已完成"，可查看相关程序分析结果。
   
- [通过FlinkServer WebUI提交作业]
  FlinkServer WebUI提供基于Web的可视化开发平台，用户只需要编写SQL即可开发作业，极大降低作业开发门槛。同时通过作业平台能力开放，支持业务人员自行编写SQL开发作业来快速应对需求，大大减少Flink作业开发工作量。
  更多FlinkServer WebUI作业操作指导请参考[运行FlinkSql作业](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24019.html)。
  - 企业级可视化运维：运维管理界面化、作业监控、作业开发Flink SQL标准化等。
    图1可视化运维   
    ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002233899656.png "点击放大") 
  
  - 快速建立集群连接：通过集群连接功能配置访问一个集群，需要客户端配置、用户认证密钥文件。
  
  - 可视化开发平台：支持自定义输入/输出映射表，满足不同输入来源、不同输出目标端的需求。
  
  - 图形化作业管理：简单易用。
    图2图形化作业管理   
    ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002268739141.png "点击放大") 
   
#### 相关文档
- 通过管理控制台提交作业后，每一条作业都支持查看日志，具体操作请参见[查看MRS作业详情和日志](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0055.html)。
- 开启Kerberos认证的集群在提交作业时，未进行IAM用户同步报错处理方法请参见[提交作业时系统提示当前用户在Manager不存在如何处理？](https://support.huaweicloud.com/mrs_faq/mrs_03_1173.html)。
- 作业提交后，查看指定Yarn任务日志的具体操作请参见[如何查看指定Yarn任务的日志？](https://support.huaweicloud.com/mrs_faq/mrs_03_1266.html)。

- 更多Flink作业运行失败故障案例处理方法请参见[作业管理类常见问题](https://support.huaweicloud.com/mrs_faq/mrs_03_2030.html)和[Flink故障排除](https://support.huaweicloud.com/trouble-mrs/mrs_03_0251.html)。
- 如需通过API方式新增并执行作业，具体操作请参见[新增并执行作业](https://support.huaweicloud.com/api-mrs/CreateExecuteJob.html)。
- 更多MRS应用开发样例程序，请参见[MRS应用开发指南](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010000.html)。
 
