【发布时间】:2015-10-01 23:55:50
【问题描述】:
我正在 Spark/Cassandra 集群上运行一个简单的应用程序。自从迁移到新环境(Spark 1.5 而不是 1.2 和较小的 Cassandra 版本升级)后,观察到性能大幅下降(对于相同的任务和相同的数据量,从 4 秒降低到 1-5 米)。
经过初步调查,从 spark-driver 的角度来看,对于完全相同的代码,生成了更多的任务(20+k,以前最多 5 个),并且执行器端的日志也反映了相同的情况:
同一查询在不同分区上的多次顺序执行:
...
CassandraTableScanRDD: Fetched 0 rows from x.y for partition 20324 in 0.138 s.
CassandraTableScanRDD: Fetched 0 rows from x.y for partition 20327 in 0.058 s.
CassandraTableScanRDD: Fetched 0 rows from x.y for partition 20329 in 0.053 s.
...
它曾经是一个单一的:
CassandraTableScanRDD: Fetched 905 rows from x.y for partition 0 in 2.992 s.
由于应用程序代码相同,我想知道是什么可能导致分区行为出现这种差异,以及可以采取哪些措施来补救?
注意!两个环境的设置如果不同,配置不会共享/继承。
谢谢。
【问题讨论】:
-
你在 cassandra 的第二个 istance 上使用了虚拟节点吗?
标签: performance cassandra apache-spark