spark: exec: "executor": исполняемый файл не найден в $PATH: неизвестно

Я пытаюсь сделать некоторые вычисления, используя petastorm v0.11.4в докер-контейнере и minikube v1.25.2

Пока я запускаю процесс локально, все работает как положено. Как только я пытаюсь выложить работу в кластер minikube, я получаю от kubelet следующее сообщение об ошибке:

Ошибка: не удалось запустить контейнер «spark-kubernetes-executor»: ответ об ошибке от демона: сбой создания среды выполнения OCI: container_linux.go:380: запуск процесса контейнера вызван: exec: «executor»: исполняемый файл не найден в $PATH: неизвестно

И модули-исполнители завершаются и создаются новые.

Код выглядит следующим образом:

      spark_conf = SparkConf()
spark_conf.setMaster("k8s://https://kubernetes.default:443")
spark_conf.setAppName("PetastormDsCreator")
spark_conf.set(
    "spark.driver.memory",
    "2g"
)
#k8s conf can be red here https://spark.apache.org/docs/latest/running-on-kubernetes.html
spark_conf.set(
    "spark.kubernetes.namespace",
    "spark"
)
spark_conf.set(
    "spark.kubernetes.authenticate.driver.serviceAccountName",
    "spark-driver"
)
spark_conf.set(
    "spark.kubernetes.authenticate.caCertFile",
    "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
)
spark_conf.set(
    "spark.kubernetes.authenticate.oauthTokenFile",
    "/var/run/secrets/kubernetes.io/serviceaccount/token"
)
spark_conf.set(
    "spark.executor.instances",
    "2"
)
spark_conf.set(
    "spark.driver.host",
    "petastorm-ds-creator" #must match the pods name =)
)
spark_conf.set(
    "spark.driver.port",
    "20022"
)
spark_conf.set(
    "spark.kubernetes.container.image",
    "localhost:5000/petastorm:v0.0.1"
)
spark_conf.set(
    "spark.kubernetes.driver.volumes.hostPath.data.mount.path", #spark.kubernetes.driver.volumes.[VolumeType].[VolumeName].mount.path
    "/data"
)
spark_conf.set(
    "spark.kubernetes.executor.volumes.hostPath.data.mount.path", #spark.kubernetes.driver.volumes.[VolumeType].[VolumeName].mount.path
    "/data"
)
spark_conf.set(
    "spark.kubernetes.driver.volumes.hostPath.data.options.path", #spark.kubernetes.driver.volumes.[VolumeType].[VolumeName].mount.path
    "/data"
)
spark_conf.set(
    "spark.kubernetes.executor.volumes.hostPath.data.options.path", #spark.kubernetes.driver.volumes.[VolumeType].[VolumeName].mount.path
    "/data"
)
spark = SparkSession.builder.config(conf=spark_conf).getOrCreate()

sc = spark.sparkContext

t = sc.parallelize(range(10))
r = t.sumApprox(3)
print('Approximate sum: %s' % r)

Кто-нибудь сталкивался с подобной проблемой? К сожалению, я не нашел много руководств, объясняющих, как настроить или использовать petastormв кубернете.

0 ответов

Другие вопросы по тегам