spark.cassandra.connection.host使用"spark.cassandra.connection.host“连接到Cassandra集群。
发布于 2020-08-31 05:47:46
默认情况下,SCC在第一次连接时将所有提供的联系人解析为IP地址,然后只使用这些IP地址进行重新连接。在初始连接发生后,它会发现集群的其余部分。通常情况下,这不是问题,因为SCC应该接收有关节点向上和向下的通知,并跟踪节点的IP地址。但是在实践中,可能会发生节点重新启动太快,并且没有收到通知的情况,因此使用SCC的Spark作业可能会试图连接到不再有效的IP地址--我在DC/OS上多次点击这个地址。
这个问题是通过SCC 2.5.0的释放解决的,它包含了SPARKC-571的一个修复程序。它引入了一个新的配置参数- spark.cassandra.connection.resolveContactPoints,当它被设置为false (默认情况下true)时,将始终使用联系人的主机名进行初始连接和重新连接,从而避免了IP地址更改的问题。
因此,在K8S上,我尝试在正常的Cassandra部署中使用这个配置参数。
发布于 2020-08-31 03:30:26
是的,为什么不呢。库伯奈特的官方文件上有一个好例子。创建一个带有选择器的无头服务
apiVersion: v1
kind: Service
metadata:
labels:
app: cassandra
name: cassandra
spec:
clusterIP: None
ports:
- port: 9042
selector:
app: cassandra基本上,当您指定spark.cassandra.connection.host=cassandra (在同一个K8s名称空间中,否则,您必须提供Cassandra..svc.cluster.local` )时,它将解析为Cassandra联系人(运行Cassandra的Pod地址)。
✌️
https://stackoverflow.com/questions/63664073
复制相似问题