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 是不是支持内置负载均衡?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Spark DataFrames 查询 JSON 数据列?