Scala cassandra中最大化RDD写入吞吐量的理想策略
我在同一个DC和同一个机架上有一个3节点集群。Keyspace的复制因子为2,我有一个spark应用程序,它从Kafka获取数据,现在我将RDD保存到CassandraScala cassandra中最大化RDD写入吞吐量的理想策略,scala,apache-spark,cassandra,datastax-enterprise,cassandra-3.0,Scala,Apache Spark,Cassandra,Datastax Enterprise,Cassandra 3.0,我在同一个DC和同一个机架上有一个3节点集群。Keyspace的复制因子为2,我有一个spark应用程序,它从Kafka获取数据,现在我将RDD保存到Cassandra rdd.saveToCassandra("db_name", "table_name") 我的时间间隔为10秒,每个批次将有10k记录,每个批次的大小约为2.5MB 在Spark Conf中,我有一个设置 .set("spark.cassandra.output.consistency.level", "ONE") 应用程序
rdd.saveToCassandra("db_name", "table_name")
我的时间间隔为10秒,每个批次将有10k记录,每个批次的大小约为2.5MB
在Spark Conf中,我有一个设置
.set("spark.cassandra.output.consistency.level", "ONE")
应用程序插入大约需要2-3秒。为什么会这样?我想优化一下。早些时候,当我使用带有RF-1的单节点机器时,我能够以0.8-1秒/批的速度插入。那么,为什么在节点和射频增加后会有这么大的延迟呢
是否需要在Spark Conf或cassandra端进行任何其他设置以提高写入速度