本文汇总了使用EMR Workflow时的常见问题。
报错“The bucket you access does not belong to you”问题
问题详情
当您的任务或者工作流运行失败时,日志信息中包含The bucket you access does not belong to you
的错误信息。详细信息如下图所示。
问题原因
您绑定的集群使用了OSS-HDFS作为集群存储根路径,但是EMR Worflow的AliyunEMRWorkflowDefaultRole角色没有访问OSS-HDFS的权限。需要您额外授予EMR Workflow访问OSS-HDFS的权限。
解决方案
使用阿里云账号(主账号)或具有管理权限的RAM用户登录RAM控制台。
创建权限策略。
在左侧导航栏,选择
。在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑,填写以下信息,单击确定。
{ "Statement": [ { "Effect": "Allow", "Action": "oss:ListObjects", "Resource": [ "acs:oss:*:*:*" ] }, { "Effect": "Allow", "Action": [ "oss:GetBucketInfo", "oss:PostDataLakeStorageFileOperation", "oss:PostDataLakeStorageAdminOperation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:*/.dlsdata", "acs:oss:*:*:*/.dlsdata*" ] } ], "Version": "1" }
在创建权限策略对话框中,设置权限策略的名称(例如EMRWorkflowDefaultRolePolicyExtra),单击确定。
为RAM角色授权。
在左侧导航栏,选择
。搜索并单击角色AliyunEMRWorkflowDefaultRole。
在权限管理页面,单击新增授权。
在新增授权页面,选择自定义策略。
输入并选择上一步中您创建的权限策略的名称(例如EMRWorkflowDefaultRolePolicyExtra),单击确认新增授权。
标题默认是 H2,请按需要调整为合适的标题级别。相邻区块应该使用同级别标题,嵌套区块应该使用低一级的标题。
如何在仅部分worker节点安装了依赖环境的集群中执行PySpark?
在仅部分worker节点安装了依赖环境的集群中执行PySpark,按照以下步骤进行操作:
使用SPARK任务类型,程序类型选择CUSTOM_SCRIPT,开启提交到Yarn执行开关,并且填写完整的spark-submit命令。
使用Yarn Node Labels特性,将Spark作业调度到已安装所需Python第三方依赖环境的节点上,详情请参见Node Labels特性使用。
报错“current cpu load average 0.0 is too high or available memory xxxG is too low, under max.cpuload.avg=2.0 and reserved.memory=xxxG”问题
问题详情
如果提交的任务处于卡顿状态且状态显示为提交成功,即使将所有之前卡住的任务停止,手动重新运行一个任务仍然会出现卡顿并报错。
问题原因
由于调度资源组与Pod的概念存在差异,停止任务并不会自动释放内存,资源组将持续占用内存。因此,当任务增加或数据量上升时,可能会导致调度资源组出现内存不足的错误。
解决方案
建议您对资源组进行扩容,或选择更大规格的资源组,同时释放小规格的资源组。