运行spark客户端时无法检索Ignite pod的IP地址

时间:2018-06-19 10:45:52

标签: apache-spark kubernetes ignite

我在 Google Kubernetes Engine 上运行了一个点燃集群。

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

现在,我尝试使用this igniteRDD代码在spark上关联使用scala

这是我用来检测GKE集群上点燃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 image后,推送到 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个执行程序。任何执行程序的日志都显示它无法连接到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

任何人都可以让我知道我的目的地。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这是一个已知问题。这与许可相关。

以下是JIRA票证:https://issues.apache.org/jira/browse/IGNITE-8081

您可以在评论中找到有效的配置。