spark-cassandra-connector性能:执行程序似乎处于空闲状态

时间:2015-09-17 13:25:43

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

在我们的40个节点集群上(33个spark执行器/ 5个节点cassandra), 在火花流中,我们在cassandra表(含.saveToCassandra)中每分钟插入大约20 000个(以及其他内容)。 我们得到的结果是:

enter image description here

如果我理解正确,执行人S3S14S19会在75%的时间内闲置,并阻止阶段结束......这样的资源浪费!而且性能下降。

以下是我的SparkContext的conf选项:

  .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写入还是其他什么?

1 个答案:

答案 0 :(得分:0)

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

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

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