MRS集群V2接口提交作业FAQ
概述
本文主要介绍MRS集群v2提交作业接口的相关内容。MRS集群1.8.x系列版本在1.8.7版本及之后,2.x系列版本在2.0.3版本及之后,1.9.x版本都支持通过V2接口向kerberos开启/普通集群提交作业。目前主要支持以下几种作业类型,分别为Mapreduce, Distcp,SparkSubmit (Spark jar和Spark Python), SparkSql,SparkScript,HiveSql,HiveScript,Flink。
1 v2接口作业提交
1.1 作业提交准备
1)iam用户同步
对于安全集群,在MRS Console页面作业管理或者调用api接口提交作业之前,需要用户将目前登录的iam用户同步到MRS Manager系统中,以便在系统中进行必要的权限校验和权限控制。
当执行iam用户同步后,有两种方式可以查看同步的用户:
a) 通过MRS Manager页面系统设置中的用户管理,查看到已同步的iam用户,及该用户所属的用户组。
b) 通过登录集群的ecs节点,执行 "id userName"查看同步的用户权限。
2)决定是否配置OBS访问权限委托
委托功能实现使用ECS自动获取的临时AK/SK访问OBS,避免了AK/SK直接暴露在配置文件中的风险。当执行的作业需要读写OBS上存放的数据时,可选择配置OBS委托。针对SparkSql,SparkScript,HiveSql,HiveScript,Flink等作业类型,当要访问OBS服务时,必须配置委托。用户也可在提交作业时,在“服务配置参数” 选项框中自主配置访问obs的临时或者永久性的accesskey、secretkey。
1.2 作业提交方式
接口提交:调用api接口提交 https://support.huaweicloud.com/api-mrs/mrs_02_0085.html
页面提交:MRS Console页面作业管理页签,如下图所示。
1.3 作业提交
1.3.1 作业提交流程
HiveSql中某些语句较为特殊,比如show tables, 只会起1个application, launcherJob),说明该作业提交成功。具体作业是否能执行成功,取决于用户的程序。
在作业管理中,查看提交的作业详情,可看到该作业对应的2个applicationId。
1.3.2 作业提交配置
V2接口作业提交所用的配置为各个支持作业提交的组件的客户端的配置(Hive除外)。当用户修改了客户端的配置并提交V2作业,被修改的配置文件将会被上传到hdfs目录:/mrs/mrsjob/application_launcherId下。运行作业时Yarn会将该目录下的配置文件分发到运行任务的core节点或者task节点,具体路径为 /srv/BigData/hadoop/data1/nm/localdir/usercache/{userName}/appcache/{application_Id}
Mapreduce/Distcp: /opt/client/HDFS/hadoop/etc/hadoop
Spark: /opt/client/Spark/spark/conf/
Hive: 使用Hive服务端配置
Flink: /opt/client/Flink/flink/conf/
2 v2接口作业提交常见的问题及定位
在提交作业过程中,可能会因为用户输入、配置文件、相关服务故障等因素导致提交作业失败或者作业执行失败。因此,这里提供一些定位日志和常见的问题来提高定位效率。
2.1 相关日志
1)MRS Console页面作业管理,每一条作业支持查看日志。这里的日志是launcherJob作业的日志,一般会在stderr和stdout中打印错误日志。如下图所示:
2)上面的日志详情主要是launcherJob的日志,如果要查看realJob的日志,可以通过MRS Manager中 Yarn服务提供的ResourceManager Web UI查看。
3)登录集群master节点,可获取上述作业的日志文件 。具体hdfs路径为:/tmp/logs/{submit_user}/logs/{application_id}
4) 提交作业后,在Yarn的WEB UI未找到对应作业的application_id,说明该作业没有提交成功,可登录集群主master节点,查看提交作业进程日志 /var/log/executor/logs/exe.log。
2.2 常见的问题
1)当前用户在MRS Manager不存在。请先在IAM给予该用户足够的权限,再在概览页签进行IAM用户同步。
安全集群使用v2接口提交作业时,未进行iam同步,会出现如下图所示错误。需要在提交之前,先进行iam同步,然后再提交作业。
2)LauncherJob作业执行结果为Failed. 报错信息为:jobPropertiesMap is null.
launcher作业失败的原因为:提交作业用户无hdfs /mrs/job-properties目录的写权限。该问题在2.1.0.6的补丁中修复,也可通过在MRS Manager页面给同步的提交作业用户赋予该目录 /mrs/job-properties的写入权限。
3)MRS Console页面Flink作业状态与Yarn上的作业状态不一致
为了节约存储空间,用户修改了Yarn的配置项yarn.resourcemanager.max-completed-applications,减小yarn上历史作业的记录保存个数。由于Flink是长时作业,在yarn上realJob还在运行,但launcherJob已经被删除,导致因从Yarn上查不到launcherJob,从而更新作业状态失败。该问题在2.1.0.6补丁中解决。规避方法:终止找不到launcherJob的作业,后续提交的作业状态就会更新。
4)提交长时作业SparkStreaming,运行几十个小时后失败,报OBS访问403
当用户提交作业需要读写OBS时,提交作业程序会默认为用户添加访问OBS的临时accesskey和secretkey,但是临时accesskey和secretkey有过期时间。如果需要运行像Flink和SparkStreaming这样的长时作业时,用户可通过“服务配置参数”选项框传入永久的accesskey和secretkey,以保证作业不会在运行过程中因秘钥过期而执行失败。
- 点赞
- 收藏
- 关注作者
评论(0)