spark-cassandra-connector 是不是支持内置负载均衡?

Posted

技术标签:

【中文标题】spark-cassandra-connector 是不是支持内置负载均衡?【英文标题】:Does spark-cassandra-connector support built-in load balanceing?spark-cassandra-connector 是否支持内置负载均衡? 【发布时间】:2020-03-15 04:07:25 【问题描述】:

我有基于 Scala 的应用程序,我需要将它连接到 Cassandra。 我发现 DataStax Enterprise 驱动程序在这方面非常有用,它们有很多很酷的功能,比如 Cassandra 的内置负载平衡,这对我来说真的很重要。 不幸的是,Scala 没有任何本地 DSE 驱动程序。我知道我们可以使用 DSE Java 驱动程序,但在这种情况下,我们失去了很多 Scala 很酷的特性。 我还发现了由 Datastax 构建的 spark-cassandra-connector,但是这个内置的负载平衡对我来说非常重要,我不知道 spark-cassandra-connector 是否支持它。

在使用 DSE Java 驱动程序的基于 Java 的应用程序中,我需要在配置文件中配置内置负载均衡器,如下所示:

datastax-java-driver.basic.load-balancing-policy 
  class = DefaultLoadBalancingPolicy

我不知道在 Scala 中使用 spark-cassandra-connector 的等效方法,我什至不确定它是否可能。 任何帮助,将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

在 Scala 中,您可以只使用 Java 驱动程序 - 开箱即用,您不仅支持基本 Scala 类型,但您可以通过将 java-driver-scala-extras 导入项目(作为源代码)来解决此问题- 它至少适用于驱动程序 3.x。另一个问题是对Option 的支持,但这可以通过具有extra codec in Java driver 的Java 选项来完成。

关于驱动程序的定制 - 这部分应该可以与 Scala 一起使用而无需更改。关于 Spark 中默认策略的支持 - Spark Cassandra 连接器出于特殊原因有一个单独的策略 - 它接近 Java 的默认策略,但具有针对 Spark 的细节。

【讨论】:

以上是关于spark-cassandra-connector 是不是支持内置负载均衡?的主要内容,如果未能解决你的问题,请参考以下文章

如何用Cassandra连接火花

Apache Spark 如何在内存中工作?

如何使用 Spark DataFrames 查询 JSON 数据列?

如何在datastax中实现rdd.bulkSaveToCassandra

如何在 AWS Glue 中使用 Spark 包?

Spark SQL - 未找到已注册的临时表