gpt4 book ai didi

apache-spark - 在 kubernetes 上运行 spark 文件访问错误

转载 作者:行者123 更新时间:2023-12-02 11:48:50 27 4
gpt4 key购买 nike

我关注了 Spark on Kubernetes blog但达到了它运行作业但在 worker pod 内失败并出现文件访问错误的地步。

2018-05-22 22:20:51 WARN  TaskSetManager:66 - Lost task 0.0 in stage 0.0 (TID 0, 172.17.0.15, executor 3): java.nio.file.AccessDeniedException: ./spark-examples_2.11-2.3.0.jar
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixCopyFile.copyFile(UnixCopyFile.java:243)
at sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:581)
at sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:253)
at java.nio.file.Files.copy(Files.java:1274)
at org.apache.spark.util.Utils$.org$apache$spark$util$Utils$$copyRecursive(Utils.scala:632)
at org.apache.spark.util.Utils$.copyFile(Utils.scala:603)
at org.apache.spark.util.Utils$.fetchFile(Utils.scala:478)
at org.apache.spark.executor.Executor$$anonfun$org$apache$spark$executor$Executor$$updateDependencies$5.apply(Executor.scala:755)
at org.apache.spark.executor.Executor$$anonfun$org$apache$spark$executor$Executor$$updateDependencies$5.apply(Executor.scala:747)
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99)
at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99)
at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:230)
at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
at scala.collection.mutable.HashMap.foreach(HashMap.scala:99)
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
at org.apache.spark.executor.Executor.org$apache$spark$executor$Executor$$updateDependencies(Executor.scala:747)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

我用来运行 SparkPi 示例的命令是:

$DIR/$SPARKVERSION/bin/spark-submit \
--master=k8s://https://192.168.99.101:8443 \
--deploy-mode=cluster \
--conf spark.executor.instances=3 \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.kubernetes.container.image=172.30.1.1:5000/myapp/spark-docker:latest \
--conf spark.kubernetes.namespace=$namespace \
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
--conf spark.kubernetes.driver.pod.name=spark-pi-driver \
local:///opt/spark/examples/jars/spark-examples_2.11-2.3.0.jar

在处理代码时,似乎 spark jar 文件正在被复制到容器内的内部位置。但是:

  1. 这是否应该发生,因为它们是本地的并且已经存在
  2. 如果需要将 do 复制到容器中的另一个位置,我该如何使容器的这一部分可写,因为它是由主节点创建的。

RBAC 已设置如下:(oc get rolebinding -n myapp)

NAME                     ROLE                    USERS       GROUPS                         SERVICE ACCOUNTS   SUBJECTS
admin /admin developer
spark-role /edit spark

和服务帐户(oc get sa -n myapp)

NAME       SECRETS   AGE
builder 2 18d
default 2 18d
deployer 2 18d
pusher 2 13d
spark 2 12d

或者我在这里做了什么傻事?

我的 kubernetes 系统在 Docker Machine 中运行(通过 osx 上的 virtualbox)我正在使用:

  • openshift v3.9.0+d0f9aed-12
  • kubernetes v1.9.1+a0ce1bc657

非常感谢有关解决此问题的任何提示?

最佳答案

我知道这是一个 500 万年前的帖子,但看起来没有足够的信息与这个问题相关,所以我发布我的答案以防它能帮助别人。

看起来您没有以 root 身份在容器内运行该进程,如果是这种情况,您可以查看此链接 ( https://github.com/minishift/minishift/issues/2836 )。

因为看起来您也在使用 openshift,您可以这样做:

oc adm policy add-scc-to-user anyuid -z spark-sa -n spark

在我的例子中,我使用的是 kubernetes,我需要使用 runAsUser:XX。因此,我授予组对容器内的/opt/spark 的读/写访问权限,这解决了问题,只需将以下行添加到 resource-managers/kubernetes/docker/src/main/dockerfiles/spark/Dockerfile.

RUN chmod g+rwx -R /opt/spark

当然,您必须手动或使用提供的脚本重新构建 docker 镜像,如下所示。

./bin/docker-image-tool.sh -r YOUR_REPO  -t YOUR_TAG build
./bin/docker-image-tool.sh -r YOUR_REPO -t YOUR_TAG push

关于apache-spark - 在 kubernetes 上运行 spark 文件访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50477893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com