【问题标题】:Low Performance of Spark Report when Spark and Cassandra on separate Docker ContainersSpark 和 Cassandra 在不同的 Docker 容器上时 Spark 报告的低性能
【发布时间】:2021-08-30 01:16:39
【问题描述】:

我在 Kubernetes 上使用 Spark 3.0.1、spark cassandra 连接器和 cassandra。

我使用 spark cassandra 连接器 repartitionByCassandraReplica API 来获取带有 Cassandra 的 Spark Partition 的数据局部性功能,然后 joinWithCassandraTable。 但是这种重新分区失败了,因为 cassandra 数据不是 Spark 容器的本地数据。因此 joinWithCassandraTable 的性能变得非常低。

有没有其他方法可以获得 joinWithCassandraTable 的良好性能。

【问题讨论】:

    标签: apache-spark kubernetes cassandra spark-cassandra-connector


    【解决方案1】:

    如您所知,当 Spark 和 Cassandra 不在同一台机器上时,调用 repartitionByCassandraReplica 毫无意义。

    要最大限度地提高 Cassandra 集群的吞吐量,请执行以下操作:

    • 为每个 C* pod 分配至少 4 个内核(推荐 8 个内核)
    • 为每个 C* pod 分配至少 16GB 的 RAM(推荐 24-30GB)
    • 为堆分配至少 8GB 内存(推荐 16GB)
    • 分配至少 5K IOPS 的卷

    配置完这些建议后,通过添加更多 C* pod 来增加集群的容量。干杯!

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 2015-11-10
      • 2016-10-16
      • 1970-01-01
      • 2016-07-12
      • 2016-02-10
      • 2015-11-15
      • 2021-11-21
      • 2016-01-05
      相关资源
      最近更新 更多