
# 从零开始使用JobGateway
JobGateway是模拟大数据（Mapreduce、Spark、Flink、Hive等）客户端用于大数据业务提交功能的网关，是一个具备HTTPS的REST系统服务，支持提交Mapreduce、Spark、Flink、Hive等类型的大数据作业， 同时具有管理作业的能力，用户可以查询、终止已提交的作业。它具备高性能、易使用、高可用、高扩展性等特点，并具有监控、告警、配置分离等特性，能够大幅缩短作业提交链路，简化大数据作业提交流程。
JobGateway服务由JobBalancer和JobServer两个角色组成，其中，JobBalancer是作业REST请求转发的网关，将作业请求转发到不同的jobserver实例，提供负载均衡的能力；JobServer是大数据作业提交的主要执行者，能根据不同的作业类型，构造提交上下文，将作业提交到YARN上。
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
本章节仅适用于MRS 3.3.1-LTS及之后版本。
#### 使用示例
例如某用户作业提交较多，流程耗时、繁琐、复杂，使用组件客户端完成作业提交效率低下。不想使用大数据组件客户端提交大数据作业，可以安装JobGateway组件，使用JobGateway服务完成作业的提交；只需要构建基于rest风格的http/https的url即可完成作业提交。
MRS 3.3.1-LTS及之后版本：JobGateway提供租户侧作业提交接口，以Hive作业提交为例，示例如下：
```
curl --location --request POST 'https://{host}:{port}/v2/job-executions
--header 'JobServerAuthorization: {AuthorizationInfo}'
--header 'Content-Type: application/json'
--data-raw '{
"job_name":"{job-name}",
"job_type":"HiveSql",
"arguments":["SHOW TABLES"]
}'
```
返回值：
```
{
    "job_submit_result":
        {
           "job_id":"84261052-c47b-4691-ae0b-95bff3191c90",
           "state":"COMPLETE"
        }
}
```
| 参数名称                   | 参数含义                                                                                                                                                                                                                                                       | 备注                       |
|:---|:---|:---|
| host                   | JobBalancer所在的服务器IP                                                                                                                                                                                                                                        | -                        |
| port                   | JobBalancer https端口                                                                                                                                                                                                                                        | https默认为29974。           |
| user.name              | 提交作业的用户名称                                                                                                                                                                                                                                                  | -                        |
| JobServerAuthorization | 授权认证信息。支持4种认证方式：IAM Token认证、账号密码认证、keytab认证、Kerberos Token认证。 以账号密码认证为例，具体格式如下： ``` token = new Base64(0).encode(userName:password) ``` header中JobServerAuthorization的值为：Basic+*{生成的token的值}* | -                        |
| job_name               | 作业名称                                                                                                                                                                                                                                                       | -                        |
| job_type               | 作业类型，支持的作业类型包含：MapReduce、SparkSubmit、SparkPython、HiveScript、HiveSql、DistCp、SparkScript、SparkSql、Flink。                                                                                                                                                     | HiveSql代表是执行HiveSql作业类型。 |
| arguments              | HiveSql作业内容                                                                                                                                                                                                                                                | -                        |
   
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 用户约束：JobGateway暂不支持集群对接的AD用户提交作业；不支持AD用户从管理面作业管理中提交作业。
- 如果在服务端修改了其他组件如ZooKeeper配置，同时，JobGateway配置也过期时，则需要重启JobGateway组件，并且刷新JobServer角色所在节点的客户端配置。刷新JobServer所在节点的客户端配置步骤如下：
  1. 以**root** 用户登录客户端安装节点，执行以下命令切换至**omm** 用户。
     **su - omm**
     
  
  2. 进入客户端安装的目录，例如"/opt/Bigdata/client"，执行以下命令更新配置文件： **cd /opt/Bigdata/client**
     **sh autoRefreshConfig.sh**
     
  
  3. 按照提示输入FusionInsight Manager管理员用户名，密码以及FusionInsight Manager界面浮动IP。
  
  4. 输入需要更新配置的组件名，组件名之间使用","分隔。如需更新所有组件配置，可直接单击回车键。
     界面显示以下信息表示配置更新成功：
     ```
     Succeed to refresh components client config.
     ```
     
   
 
