我在Kubernetes上使用Spark 3.0.1、Spark cassandra连接器和cassandra。
我使用spark-cassandra连接器重分区ByCassandraReplica API来获得带有cassandra的spark分区的数据本地化功能,然后加入WithCassandraTable。但由于cassandra数据不是Spark容器的本地数据,因此此重新分区失败。正因为如此,joinWithCassandraTable的性能变得非常低。
是否有其他方法可以获得joinWithCassandraTable的良好性能。
如您所知,当Spark和Cassandra不在同一台机器上时,调用repartitionByCassandraReplica
是毫无意义的。
要最大限度地提高Cassandra集群的吞吐量,请执行以下操作:
- 为每个C*吊舱分配至少4个核心(建议8个核心(
- 为每个C*吊舱分配至少16GB的RAM(建议24-30GB(
- 为堆分配至少8GB的内存(建议16GB(
- 分配IOPS至少为5K的卷
一旦配置了这些建议,就可以通过添加更多的C*pod来增加集群的容量。干杯