Kubernetes Spark Cassandra连接器能否在K8S环境下解决无头服务的主机问题?

Kubernetes Spark Cassandra连接器能否在K8S环境下解决无头服务的主机问题?,kubernetes,cassandra,datastax,spark-cassandra-connector,Kubernetes,Cassandra,Datastax,Spark Cassandra Connector,Datastax Spark Cassandra连接器采用“Spark.Cassandra.connection.host”连接到Cassandra群集 我们能否在K8S环境下提供C*集群的无头服务作为该参数的主机(“spark.cassandra.connection.host”) 它会解决接触点问题吗 使用Spark Cassandra连接器在K8s环境中连接C*群集的首选方式是什么 是的,为什么不呢。Kubernetes官方文件上有一个。您可以创建一个: apiVersion:v1

Datastax Spark Cassandra连接器采用“Spark.Cassandra.connection.host”连接到Cassandra群集

  • 我们能否在K8S环境下提供C*集群的无头服务作为该参数的主机(“spark.cassandra.connection.host”)

  • 它会解决接触点问题吗

  • 使用Spark Cassandra连接器在K8s环境中连接C*群集的首选方式是什么

  • 是的,为什么不呢。Kubernetes官方文件上有一个。您可以创建一个:

    apiVersion:v1 种类:服务 元数据: 标签: 应用程序:卡桑德拉 姓名:卡桑德拉 规格: 集群:无 端口: -港口:9042 选择器: 应用程序:卡桑德拉 基本上,当您指定
    spark.cassandra.connection.host=cassandra
    (在相同的K8s命名空间中,否则,您必须提供cassandra..svc.cluster.local`它将解析为cassandra联系人(cassandra运行的Pod IP地址)


    ✌️

    默认情况下,SCC在第一次连接时将所有提供的联系点解析为IP地址,然后仅使用这些IP地址进行重新连接。在初始连接发生后,它将发现集群的其余部分。通常这不是问题,因为SCC应接收有关节点上下移动的通知并跟踪节点IP地址。但在实践中,可能会发生节点重新启动过快,且未收到通知的情况,因此使用SCC的Spark作业可能无法连接到不再有效的IP地址-我在DC/OS上多次遇到这种情况

    解决此问题的方法包括修复。它引入了一个新的配置参数-
    spark.cassandra.connection。当设置为
    false
    (默认情况下为
    true
    )时,解析触点将始终使用联系人的主机名进行初始连接和重新连接,避免IP地址更改的问题


    因此,在K8S上,我会尝试将此配置参数用于正常的Cassandra部署。

    版本有任何限制吗?我无法在Datastax spark Cassandra连接器的文档中找到。是的,Alex我看到了此参数(spark.Cassandra.connection.resolveContactPoints)在文档中。但我想知道SCC是否能够从headless service解析联系人。我相信是的,正如Rico在前面的回答中也提到的那样。它将解析,是的-但随后它将继续使用节点本身的发现,我不确定它将如何很好地使用它。根据使用的操作员,您可以不需要无头服务