从零开始使用JobGateway
JobGateway是模拟大数据(Mapreduce、Spark、Flink、Hive等)客户端用于大数据业务提交功能的网关,是一个具备HTTPS的REST系统服务,支持提交Mapreduce、Spark、Flink、Hive等类型的大数据作业, 同时具有管理作业的能力,用户可以查询、终止已提交的作业。它具备高性能、易使用、高可用、高扩展性等特点,并具有监控、告警、配置分离等特性,能够大幅缩短作业提交链路,简化大数据作业提交流程。
JobGateway服务由JobBalancer和JobServer两个角色组成,其中,JobBalancer是作业REST请求转发的网关,将作业请求转发到不同的jobserver实例,提供负载均衡的能力;JobServer是大数据作业提交的主要执行者,能根据不同的作业类型,构造提交上下文,将作业提交到YARN上。
背景信息
例如某用户作业提交较多,流程耗时、繁琐、复杂,使用组件客户端完成作业提交效率低下。不想使用大数据组件客户端提交大数据作业,可以安装JobGateway组件,使用JobGateway服务完成作业的提交;只需要构建基于rest风格的http/https的url即可完成作业提交。
以Hive作业提交为例,示例如下:
curl --location --request POST 'https://{host}:{port}/mrsjob/submit?user.name={username}' --header 'JobServerAuthorization: {AuthorizationInfo}' --header 'Content-Type: application/json' --data-raw '{ "job_name":"{job-name}", "job_type":"HiveSql", "arguments":["SHOW TABLES"] }'
返回值:
{ "id": null, "state": "COMPLETE", "errorCode": 0, "errorCodeDescription": null, "errorDescription": null, "failedNodeList": null, "totalProgress": "0", "job_id": "466710d2-b1ff-4a98-805b-4675292e5cc8" }
参数名称 |
参数含义 |
备注 |
---|---|---|
host |
JobBalancer所在的服务器IP |
- |
port |
JobBalancer https端口 |
https默认为29974 |
user.name |
提交作业的用户名称 |
- |
JobServerAuthorization |
授权认证信息 |
参考JobGateway接口文档 |
job_name |
作业名称 |
- |
job_type |
作业类型 |
HiveSql代表是执行HiveSql作业类型 |
arguments |
HiveSql作业内容 |
- |
如果在服务端修改了其他组件如ZooKeeper配置,同时,JobGateway配置也过期时,则需要重启JobGateway组件,并且刷新JobServer角色所在节点的客户端配置。刷新JobServer所在节点的客户端配置步骤如下: