k8s spark не может запустить исполнителя - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть кластер k8s на openstack.Я использовал диаграмму руля https://github.com/eddieesquivel/kubernetes-spark/tree/master/chart, чтобы запустить искровой кластер.Я сделал некоторые изменения, например, я использовал NodePort вместо LoadBalancer для веб-интерфейса, потому что я не знаю, как настроить LoadBalancer на openstack и k8s.Я использовал образ докера (2.3.1-hadoop-3.0) из https://hub.docker.com/r/gettyimages/spark/tags.

Я бегу kubectl port-forward <spark master pod name> 8080:8080 и видел всех 3 рабочих на 127.0.0.1:8080.

Я бегу kubectl exec -it <spark master pod name> -- bash и запустите ./bin/spark-submit --master spark://myspark-master:7077 --deploy-mode cluster --name spark-pi --class org.apache.spark.examples.SparkPi /usr/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar, но из файла журнала на одном работнике я получил следующую ошибку:

Spark Executor Command: "/usr/jdk1.8.0_171/bin/java" "-cp" "/usr/spark-2.3.1/conf/:/usr/spark-2.3.1/jars/*:/usr/hadoop-3.0.0/etc/hadoop/:/usr/hadoop-3.0.0/etc/hadoop/*:/usr/hadoop-3.0.0/share/hadoop/common/lib/*:/usr/hadoop-3.0.0/share/hadoop/common/*:/usr/hadoop-3.0.0/share/hadoop/hdfs/*:/usr/hadoop-3.0.0/share/hadoop/hdfs/lib/*:/usr/hadoop-3.0.0/share/hadoop/yarn/lib/*:/usr/hadoop-3.0.0/share/hadoop/yarn/*:/usr/hadoop-3.0.0/share/hadoop/mapreduce/lib/*:/usr/hadoop-3.0.0/share/hadoop/mapreduce/*:/usr/hadoop-3.0.0/share/hadoop/tools/lib/*" "-Xmx1024M" "-Dspark.driver.port=45708" "-Dspark.rpc.askTimeout=10s" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "--driver-url" "spark://CoarseGrainedScheduler@myspark-worker-d95949b47-szscm:45708" "--executor-id" "48" "--hostname" "10.233.88.5" "--cores" "2" "--app-id" "app-20181231154056-0000" "--worker-url" "spark://Worker@10.233.88.5:42919"
========================================

Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1980)
    at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:64)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.run(CoarseGrainedExecutorBackend.scala:188)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.main(CoarseGrainedExecutorBackend.scala:293)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend.main(CoarseGrainedExecutorBackend.scala)
Caused by: org.apache.spark.SparkException: Exception thrown in awaitResult: 
    at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:205)
    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75)
    at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:101)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$$anonfun$run$1.apply$mcV$sp(CoarseGrainedExecutorBackend.scala:201)
    at org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:65)
    at org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:64)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1962)
    ... 4 more
Caused by: java.io.IOException: Failed to connect to myspark-worker-d95949b47-szscm:45708
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:245)
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:187)
    at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:198)
    at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:194)
    at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:190)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    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)
Caused by: java.net.UnknownHostException: myspark-worker-d95949b47-szscm

Кажется, что работники и мастер не доступны друг другу по имени хоста или имени модуля.но из вышеприведенной ошибки spark пытается подключиться к works / master по именам модулей или хостов вместо ips.Как исправить файлы рулевой диаграммы?какие-либо другие решения?

Кстати, я пытался добавить все имена хостов и их ips к /etc/hosts на каждом модуле вручную, что пока не является предпочтительным.

Спасибо

ОБНОВЛЕНИЕ

из приведенной ниже команды Spark Executor: Команда Spark Executor: "/usr/jdk1.8.0_171/bin/java" "-Xmx1024M" "-Dspark.driver.port=45708" "-Dspark.rpc.askTimeout=10s" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "--driver-url" "spark://CoarseGrainedScheduler@myspark-worker-d95949b47-szscm:45708" "--executor-id" "1" "--hostname" "10.233.86.5" "--cores" "2" "--app-id" "app-20181231154056-0000" "--worker-url" "spark://Worker@10.233.86.5:44798", myspark-worker-d95949b47-szscm используется в --driver-url, , которая не может быть разрешена .Как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...