Apache spark Spark Cassandra性能问题
我是Spark和Cassandra的新手。我面临一个主要的性能问题。我在Spark中每隔5秒从Kafka流式传输数据,然后使用JRI对R语言中的数据执行分析,最后将数据保存到Cassandra各自的列族中。将数据保存到Cassandra的持续时间(以毫秒为单位)随着输入请求的数量(每个请求为200KB)迅速增加 火花代码:Apache spark Spark Cassandra性能问题,apache-spark,cassandra,spark-cassandra-connector,Apache Spark,Cassandra,Spark Cassandra Connector,我是Spark和Cassandra的新手。我面临一个主要的性能问题。我在Spark中每隔5秒从Kafka流式传输数据,然后使用JRI对R语言中的数据执行分析,最后将数据保存到Cassandra各自的列族中。将数据保存到Cassandra的持续时间(以毫秒为单位)随着输入请求的数量(每个请求为200KB)迅速增加 火花代码: sessionData.foreachRDD(new Function<JavaRDD<NormalizedData>, Void>() {
sessionData.foreachRDD(new Function<JavaRDD<NormalizedData>, Void>() {
public Void call(JavaRDD<NormalizedData> rdd) {
System.out.println("step-3 " + System.currentTimeMillis());
javaFunctions(rdd).writerBuilder("keyspace",normalized_data",mapToRow(NormalizedData.class)).saveToCassandra();
System.out.println("step-4 " + System.currentTimeMillis());}}
sessionData.foreachRDD(新函数(){
公共无效调用(JavaRDD){
System.out.println(“步骤3”+System.currentTimeMillis());
javaFunctions(rdd).writerBuilder(“键空间”,规范化的_数据),mapToRow(NormalizedData.class)).saveToCassandra();
System.out.println(“步骤4”+System.currentTimeMillis());}
通过在同一台服务器上使用Spark和Cassandra,我能够提高相同的性能。此延迟是因为Spark和Cassandra位于不同的服务器上,虽然在AWS上位于同一个区域。网络延迟是主要原因,因为它会影响数据位置。谢谢。您可以参考此内容进行Spark-Cassandra连接器调整。您可以将了解您可以期望的性能数字。您还可以尝试另一种开源产品SnappyData,即Spark数据库,它将在您的用例中为您提供非常高的性能。我还使用Cassandra Spark combination进行实时分析。以下是一些最佳做法:
spark default.conf:connection.spark.Cassandra.connection.keep_alive_ms 3600000 spark.Cassandra.output.batch.size.rows 2 spark.Cassandra.output.concurrent.writes10 spark.Cassandra。output.batch.size.bytes 2m spark.cassandra.input.split.size_in_mb 1 mb请让我知道