为 spark cassandra 连接器创建自定义负载平衡策略

Create a custom LoadBalancing Policy for spark cassandra connector

我知道 spark-cassandra 连接器带有它自己的默认负载平衡策略实现 (DefaultLoadBalancingPolicy)。我该如何着手实施我自己的自定义 LoadBalancing class?我想让应用程序使用 WhiteListRoundRobin 策略。我需要采取什么步骤?我仍然是使用 spark 和 Cassandra 的新手,我将不胜感激这方面的任何指导。谢谢

您可以查看 LocalNodeFirstLoadBalancingPolicy 的实现 - 基本上您需要创建(如果它不存在)继承自 LoadBalancingPolicy 的 class,并实现您需要的逻辑负载均衡。

然后您需要创建一个 class 实现 CassandraConnectionFactory 来配置具有所需负载平衡实现的 Cassandra 会话。最简单的方法是采用 DefaultConnectionFactory 的代码,但不要使用 LocalNodeFirstLoadBalancingPolicy,而是指定您的负载平衡 class.

然后在 spark.cassandra.connection.factory 配置中指定连接工厂 class 名称 属性。