【发布时间】:2018-06-19 10:45:51
【问题描述】:
我有一个在 Google Kubernetes Engine 上运行的 ignite 集群。
sudo kubectl get pods
NAME READY STATUS RESTARTS AGE
ignite-cluster-bbb4f56c4-nrftv 1/1 Running 0 6d
ignite-cluster-bbb4f56c4-skvf6 1/1 Running 0 6d
现在我正在尝试使用spark 上的igniteRDD 连接使用this scala 代码。
这是我用来检测 GKE 集群上的 ignite pod 的配置文件。
import org.apache.ignite.configuration.IgniteConfiguration
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
import org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder
object igniteConf {
def ignite_configuration: IgniteConfiguration = {
val spi = new TcpDiscoverySpi
val ipFinder = new TcpDiscoveryKubernetesIpFinder
ipFinder.setMasterUrl("https://35.192.214.68")
ipFinder.setServiceName("ignite")
spi.setIpFinder(ipFinder)
val cfg = new IgniteConfiguration
cfg.setDiscoverySpi(spi)
cfg
}
}
在主文件中我这样使用它
val igniteContext = new IgniteContext(sparkContext, () => igniteConf.ignite_configuration, true)
现在我创建一个 jar 并在创建 docker 映像后推送到 Google Container Registry。
运行 jar 的命令。
sudo bin/spark-submit --master k8s://https://35.192.214.68 --deploy-mode cluster --name sparkIgnite --class org.blk.igniteSparkResearch.ScalarSharedRDDExample --conf spark.executor.instances=3 --conf spark.app.name=sharedSparkIgnite --conf spark.kubernetes.authenticate.driver.serviceAccountName=ignite --conf spark.kubernetes.container.image=us.gcr.io/nlp-research-198620/ignite-spark:v2 local:///opt/spark/jars/igniteSpark-1.0-SNAPSHOT-jar-with-dependencies.jar
上面的命令创建了 1 个驱动程序和 3 个执行程序。任何 executor 的日志显示它无法连接到 kubernetes 上的 ignite-cluster。
class org.apache.ignite.spi.IgniteSpiException: Failed to retrieve Ignite pods IP addresses
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://35.192.214.68/api/v1/namespaces/default/endpoints/ignite
谁能告诉我我可能要去哪里。
提前致谢。
【问题讨论】:
标签: apache-spark kubernetes ignite