【发布时间】:2020-12-04 01:51:20
【问题描述】:
我在 Kubernetes 上以客户端模式运行 Spark 2.4.1。
我正在尝试从包含 spark 的 pod 提交任务,该任务将启动 2 个执行器 pod。 命令如下:
bin/spark-shell \
--master k8s://https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT \
--deploy-mode client \
--conf spark.executor.instances=2 \
--conf spark.kubernetes.container.image=$SPARK_IMAGE \
--conf spark.kubernetes.driver.pod.name=$HOSTNAME
--conf spark.kubernetes.executor.podNamePrefix=spark-exec \
--conf spark.ui.port=4040
这些执行程序 pod 已创建,但一直失败并出现错误:
Caused by: java.io.IOException: Failed to connect to spark-57b8f99554-7nd45:4444
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: spark-57b8f99554-7nd45
at java.net.InetAddress.getAllByName0(InetAddress.java:1281)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getByName(InetAddress.java:1077)
at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:146)
at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:143)
似乎工作 pod 无法到达主节点(pod spark-57b8f99554-7nd45),它应该与 THIS 点有关,但我不知道如何解决它。 有什么想法吗?
【问题讨论】:
-
你确定第一个命令没问题吗?根据spark.apache.org/docs/latest/… 不应该是
mode = cluster吗? -
他正在尝试运行 shell,所以没关系:`集群部署模式不适用于 Spark shell。¨
-
@EgorStambakio 因为 Kubernetes 上的 spark 2.4.0 客户端模式是可能的。
标签: apache-spark kubernetes pyspark kubernetes-pod