在我们的 40 个节点集群(33 个 spark 执行器/5 个节点 cassandra)上,通过 spark-streaming,我们每分钟在 cassandra 表中插入大约 20 000 个(除其他外.saveToCassandra
)。我们得到的结果是:
如果我理解正确, executorsS3
和S14
75 S19
% 的时间都处于空闲状态并阻止阶段完成......这样的资源浪费!和性能损失。
这是我的 SparkContext 的配置选项:
.set("spark.cassandra.output.batch.size.rows", "5120")
.set("spark.cassandra.output.concurrent.writes", "100")
.set("spark.cassandra.output.batch.size.bytes", "100000")
.set("spark.cassandra.connection.keep_alive_ms","60000")
这种行为正常吗?如果不是,我应该调整上述设置以避免它吗?问题是来自 spark-cassandra-connector 写入还是其他原因?