3

在我们的 40 个节点集群(33 个 spark 执行器/5 个节点 cassandra)上,通过 spark-streaming,我们每分钟在 cassandra 表中插入大约 20 000 个(除其他外.saveToCassandra)。我们得到的结果是:

在此处输入图像描述

如果我理解正确, executorsS3S1475 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 写入还是其他原因?

4

1 回答 1

0

乍一看,我怀疑这是一个 cassandra 连接器问题。我们目前正在使用每分钟 300,000 条记录和更小的集群进行 .saveToCassandra。

如果 .saveToCassandra 需要很长时间,您往往会看到很长的任务。您看到的是任务之间无法解释的(?)差距。

这将需要更多的信息来追踪这一点。从“工作”选项卡开始 - 您是否看到任何工作需要很长时间?深入研究,你看到了什么?

于 2015-10-02T16:42:48.907 回答