当前位置: 首页 > 知识库问答 >
问题:

EMR EKS无法启动驾驶员舱

杜霍英
2023-03-14

如何在EKS上的EMR中设置资源限制?我的驱动程序pod无法启动,因为它请求的CPU超过了允许的数量。这对我没有意义。我正在运行下面文档中的入门代码。

我添加了conf spark。驾驶员限度cores=2,以尝试使限值高于下面错误消息中列出的限值。我从这里得到了这个主意https://spark.apache.org/docs/latest/running-on-kubernetes.html#spark-属性

此群集中确实运行istio。我不确定这是否会引起问题。

下面是我正在运行的触发作业的代码

aws emr-containers start-job-run \
  --virtual-cluster-id blahblah \
  --name pi-4 \
  --execution-role-arn arn:aws:iam::0000000000:role/blahblah_emr_eks_executor_role \
  --release-label emr-6.4.0-latest \
  --job-driver '{
    "sparkSubmitJobDriver": {
      "entryPoint": "s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py",
      "entryPointArguments": ["s3://blahblah/wordcount_output"],
      "sparkSubmitParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1 --conf spark.driver.limit.cores=2"
    }
  }'

这会导致job runner容器出现以下故障:

状态:终止原因:错误消息:线程“main”io中出现异常。fabric8.kubernetes。客户KubernetesClientException:执行失败:POST地址:https://kubernetes.default.svc/api/v1/namespaces/spark/pods.消息:Pod“spark-0000000 2VEPBPMI2HKV驱动程序”无效:spec.containers[2]。资源。请求:无效值:“1”:必须小于或等于cpu限制。收到的状态:状态(apiVersion=v1,code=422,details=StatusDetails(原因=[状态原因(字段=spec.containers[2])。resources.requests,message=无效值:“1”:必须小于或等于cpu限制,原因=FieldValue无效,additionalProperties={})],组=null,种类=Pod,名称=spark-0000000 2VEPBPMI2HKV驱动程序,retryAfterSeconds=null,uid=null,additionalProperties={}),种类=状态,消息=Pod“spark-0000000 2VEPBPMI2HKV驱动程序”无效:spec.containers[2]。资源。请求:无效值:“1”:必须小于或等于cpu限制,元数据=ListMeta(\u continue=null,remainingItemCount=null,resourceVersion=null,selfLink=null,additionalProperties={}),原因=无效,状态=失败,additionalProperties={})。在io。fabric8.kubernetes。客户dsl。基础操作支持。requestFailure(OperationSupport.java:589)

关于如何进行有什么想法吗?

共有1个答案

胡元明
2023-03-14

我能弄明白。

aws emr-containers start-job-run \
  --virtual-cluster-id=blahblah \
  --name=pi-4 \
  --execution-role-arn=arn:aws:iam::blahblahaccount:role/balblah_role_name \
  --release-label=emr-6.4.0-latest \
  --job-driver='{
    "sparkSubmitJobDriver": {
      "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py",
      "sparkSubmitParameters": "--conf spark.executor.instances=1 --conf spark.executor.memory=2G --conf spark.executor.request.cores=1 --conf spark.kubernetes.executor.limit.cores=2 --conf spark.driver.request.cores=1 --conf spark.kubernetes.driver.limit.cores=2
    }
  }'

看起来aws文档是错误的,配置值实际上如下所示。

  • <代码>--配置spark。{驱动程序|执行器}。要求核心
  • <代码>--配置spark。{驱动程序|执行器}。限度核心

但是,AWS文档让您传入conf spark。驾驶员核心=1。这个值似乎没有得到承认,我认为是这个值导致了我的错误。下面的spark配置文档提到了spark。驾驶员要求磁芯优先于火花。驾驶员cores,我认为这很有意义,因为当我传递它时,它的值被识别出来了。

https://spark.apache.org/docs/latest/running-on-kubernetes.html#configuration

 类似资料:
  • 我在Stack Overflow中见过很多解决方案,但没有一个对我有效。所以我得到了这个例外。我的pom。这里有xml代码 我还在tomcat/lib文件夹中添加了jar文件。但对我来说什么都不管用。

  • 问题内容: 我正在阅读一本Java教科书,其中提到了一个称为“驱动程序类”的内容。这是什么?与普通班有什么不同? 问题答案: “驱动程序类”通常只是包含主类的类。在一个真实的项目中,您可能经常有许多“驱动程序类”用于测试等等,或者您可以在任何对象中构建主类,并通过IDE或通过简单指定“ java类名”来选择可运行类。

  • 我的Spring Boot项目正在尝试使用驱动程序连接MYSQL数据库。我已经导入了最新的mysql驱动程序和 我已经在文件中配置了数据库连接 MYSQL版本是8.0.26 Spring启动版本2.6.2 当用Intellij运行项目时,我得到一个错误 原因:org。springframework。豆。BeanInstationException:未能实例化[com.zaxxer.hikari.H

  • 9.17 自动驾驶 感知算法实习 一面 自我介绍 ResNet数学原理 one two stage网络代表和区别 SSD yolo Faster RCNN roi pooling和roi algin torch动态图 python装饰器 CaDDN流程 DETR流程 DETR3D deformable attention mmcv中的hook runner机制 反向传播 mAP计算 9.21 二面