在我们的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-connector的写入,还是其他原因?
发布于 2015-10-03 00:42:49
乍一看,我怀疑这是cassandra连接器的问题。我们目前正在使用每分钟300,000条记录和更小的集群进行.saveToCassandra。
如果是.saveToCassandra花了很长时间,你可能会看到很长的任务。你看到的是无法解释的(?)任务之间的差距。
这将需要更多的信息来追踪这个问题。从作业选项卡开始-您是否看到任何作业需要很长时间?向下钻,你看到了什么?
https://stackoverflow.com/questions/32631483
复制相似问题