Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在ApacheSpark中重新分区CassandraRDD_Java_Cassandra_Apache Spark_Datastax Java Driver_Rdd - Fatal编程技术网

Java 如何在ApacheSpark中重新分区CassandraRDD

Java 如何在ApacheSpark中重新分区CassandraRDD,java,cassandra,apache-spark,datastax-java-driver,rdd,Java,Cassandra,Apache Spark,Datastax Java Driver,Rdd,我使用的是三节点Cassandra集群,有六个Spark Worker,每个都有一个内核和2GB内存。 使用Spark应用程序,我尝试从Cassandra表中获取整个数据,该表有超过300k行,并尝试进行一些聚合 但是从卡桑德拉那里获取数据需要很多时间。我还浏览了Spark UI,我看到Spark stage有3个分区,其中两个分区执行得非常快(在几秒钟内),但第三个分区执行时间很长(7分钟) 我还尝试重新划分CassandraRDD,以增加任务数量并将任务分配给所有六名员工,但没有找到任何解决

我使用的是三节点Cassandra集群,有六个Spark Worker,每个都有一个内核和2GB内存。 使用Spark应用程序,我尝试从Cassandra表中获取整个数据,该表有超过300k行,并尝试进行一些聚合

但是从卡桑德拉那里获取数据需要很多时间。我还浏览了Spark UI,我看到Spark stage有3个分区,其中两个分区执行得非常快(在几秒钟内),但第三个分区执行时间很长(7分钟)


我还尝试重新划分CassandraRDD,以增加任务数量并将任务分配给所有六名员工,但没有找到任何解决方案。

要调整CassandraRDD创建的任务数量,需要调整spark.cassandra.input.split.size。这决定了实际的Spark分区数量

spark.cassandra.input.split.size    approx number of Cassandra partitions in a Spark partition  100000
注意,这控制了spark分区中C*分区的数量,而不是C*行的数量。这也是一个估计值,因此不能保证spark分区中的令牌的确切数量

如果您继续看到某些分区的运行速度比其他分区慢,我将调查该分区的节点运行状况,并检查热点

我已经设置了这个--conf spark.cassandra.input.split.size_in_mb=32,但我大约250 mb的所有数据都加载在一个执行器中(约400万条记录),请参考此