Spark作业访问OBS数据时报ResponseCode: 403和ResponseStatus: Forbidden错误
问题现象
Spark程序访问OBS数据时上报如下错误。
Caused by: com.obs.services.exception.ObsException: Error message:Request Error.OBS servcie Error Message. -- ResponseCode: 403, ResponseStatus: Forbidden
解决方案
Spark程序访问OBS数据时,需要通过配置AK、SK的访问进行访问。具体访问方式可以参考上方:通用队列操作OBS表如何设置AK/SK。
有访问OBS对应的桶的权限,但是Spark作业访问时报错 verifyBucketExists on XXXX: status [403]
请排查“全局配置 > 作业配置” 对应OBS桶是否被设置为了DLI日志桶。
日志桶不能用于DLI的其他业务功能中。
Spark作业运行大批量数据时上报作业运行超时异常错误
Spark作业程序访问大批量数据,如访问DWS大批量数据库数据时,建议设置并发数,启动多任务的方式运行,避免作业运行超时。
使用Spark作业访问sftp中的文件,作业运行失败,日志显示访问目录异常
Spark作业不支持访问sftp。
建议将文件数据上传到OBS,再通过Spark作业进行读取和分析。
执行作业的用户数据库和表权限不足导致作业运行失败
问题现象
Spark作业运行报数据库权限不足,报错信息如下:
org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Permission denied for resource: databases.xxx,action:SPARK_APP_ACCESS_META)
解决方案
需要给执行作业的用户赋数据库的操作权限,具体操作参考如下:
- 在DLI管理控制台左侧,单击“数据管理”>“库表管理”。
- 单击所选数据库“操作”栏中的“权限管理”,将显示该数据库对应的权限信息。
- 在数据库权限管理页面右上角单击“授权”。
- 在“授权”弹出框中,选择“用户授权”或“项目授权”,填写需要授权的用户名或选择需要授权的项目,选择相应的权限。
- 单击“确定”,完成授权。