如何设置 Spark-Cassandra 连接器以连接到 Kubernetes 上的 Cassandra 集群

问题描述 投票:0回答:1

当 Cassandra 在 k8s 上时,我们使用 Spark-Cassandra 连接器的写入性能非常差。 为清楚起见- 我们正在尝试写入大约 200GB 有 16 个执行器,每个执行器有 4 个内核和 16GB 内存。 我们有一个 5 个节点的 Cassandra 集群 写了大约 8 个小时....

将 DataFrame 写入 Cassandra 的示例代码:

df
.write
.format("org.apache.spark.sql.cassandra")
.mode("overwrite")
.option("confirm.truncate", "true")
.options(table=tablename, keyspace=cassandra_keyspace)
.save()

我们最近开始使用 Cassandra,并决定将其部署在 Kubernetes 上。 我们正在 Spark 上运行一些需要直接写入 Cassandra 的 ETL。

我们的设置是:

  • Cassandra (4.0) 使用 K8ssandra operator (1.6) 部署在 k8s 上,在 traefik ingress 后面(无 TLS)

  • Spark (3.2) 部署在裸机上,Pyspark 中的 ETL,使用 spark-cassandra-connector_2.12-3.2.0.

我正在寻找有关如何配置 spark 连接器以在这种情况下使用所有节点的任何参考。 我假设正在发生的事情是,连接器只能“看到”入口地址并取回其他节点的内部 IP。 我们想按照 here 的示例进行操作,但不确定我们如何配置 spark 连接器以使用此类配置...

cassandra kubernetes-ingress spark-cassandra-connector k8ssandra
1个回答
0
投票

K8ssandra Operator 是我们最新推出的产品。在一个统一的 Operator 中,K8ssandra Operator 为 Kubernetes + Cassandra 部署提供了一组全新的、固化的功能。这些功能包括稳健的管理(cass-operator)、API 集成(Stargate)、反熵修复(Reaper)和备份/恢复(Medusa)。重要的增强功能包括多集群和多区域支持,这可以为企业应用程序和数据提供更高的可扩展性和可用性。 K8ssandra Operator 也支持单集群/区域部署。

截至撰写本文时,K8ssandra 运算符的最新推荐版本是

1.6
。你用的是这个还是别的东西?

您能否分享您今天在您的环境中使用的 Cassandra 和 Spark Cassandra Connector (SCC) 配置属性 的版本?

此外,详细说明并提供有关您如何描述

pretty bad write performance
以及应用程序SLO是什么的足够详细信息。

您可以展示的任何示例代码片段也将有助于快速有效地对此进行分类。

或者,您可以参考https://k8ssandra.io/community/其他可以寻求帮助的地方。

© www.soinside.com 2019 - 2024. All rights reserved.