spark cassandra连接器性能:执行器似乎处于空闲状态

spark cassandra连接器性能:执行器似乎处于空闲状态,cassandra,apache-spark,spark-streaming,spark-cassandra-connector,Cassandra,Apache Spark,Spark Streaming,Spark Cassandra Connector,在我们的40节点集群上(33个spark executors/5个节点cassandra), 使用spark streaming,我们在cassandra表(使用.saveToCassandra)中以每分钟20000次的速度插入数据。 我们得到的结果是: 如果我理解正确,执行者S3、S14和S19在75%的时间里是空闲的,并阻止舞台完成。。。这样的资源浪费!以及性能损失 以下是SparkContext的配置选项: .set("spark.cassandra.output.batch.siz

在我们的40节点集群上(33个spark executors/5个节点cassandra), 使用spark streaming,我们在cassandra表(使用
.saveToCassandra
)中以每分钟20000次的速度插入数据。 我们得到的结果是:

如果我理解正确,执行者
S3
S14
S19
在75%的时间里是空闲的,并阻止舞台完成。。。这样的资源浪费!以及性能损失

以下是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连接器写入还是其他原因?

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

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


这需要更多的信息来追踪。从“作业”选项卡开始-您是否看到任何作业需要很长时间?往下钻,你看到了什么

这可能与如何划分数据有关?在spark中的各个阶段之间调用coalesce()吗