Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Apache spark spark datasax cassandra连接器从重型cassandra表读取速度慢_Apache Spark_Spark Streaming_Apache Spark Sql_Spring Data Cassandra_Spark Cassandra Connector - Fatal编程技术网

Apache spark spark datasax cassandra连接器从重型cassandra表读取速度慢

Apache spark spark datasax cassandra连接器从重型cassandra表读取速度慢,apache-spark,spark-streaming,apache-spark-sql,spring-data-cassandra,spark-cassandra-connector,Apache Spark,Spark Streaming,Apache Spark Sql,Spring Data Cassandra,Spark Cassandra Connector,我不熟悉Spark/Spark Cassandra连接器。我们在团队中首次尝试spark,并使用spark cassandra连接器连接到cassandra数据库 我编写了一个查询,它使用了数据库的一个沉重的表,我看到Spark任务直到对该表的查询获取了所有记录才开始 仅从数据库中获取所有记录就需要3个多小时 从我们使用的数据库中获取数据 CassandraJavaUtil.javaFunctions(sparkContextManager.getJavaSparkContext(SOURC

我不熟悉Spark/Spark Cassandra连接器。我们在团队中首次尝试spark,并使用spark cassandra连接器连接到cassandra数据库

我编写了一个查询,它使用了数据库的一个沉重的表,我看到Spark任务直到对该表的查询获取了所有记录才开始

仅从数据库中获取所有记录就需要3个多小时

从我们使用的数据库中获取数据

  CassandraJavaUtil.javaFunctions(sparkContextManager.getJavaSparkContext(SOURCE).sc())
    .cassandraTable(keyspaceName, tableName);
有没有办法让spark开始工作,即使所有数据都没有下载完

是否有选项告诉spark cassandra connector使用更多线程进行提取

谢谢,
kokou.

如果您查看Spark UI,表扫描将创建多少个分区?我只是做了一些类似的事情,我发现Spark为扫描创建了太多的分区,结果花费了更长的时间。我减少工作时间的方法是将配置参数
spark.cassandra.input.split.size_in_mb
设置为高于默认值的值。就我而言,一份20分钟的工作只花了大约4分钟。还有一些Cassandra read-specific Spark变量可以设置并找到。 这些问题是我最初提到的,我希望它们也能帮助你

编辑:

在对Spark配置参数进行了一些性能测试之后,我发现Spark在没有给Spark执行器足够内存的情况下创建了太多的表分区。在我的例子中,将内存增加1 GB足以使输入拆分大小参数变得不必要。如果无法为执行者提供更多内存,您可能仍然需要将
spark.cassandra.input.split.size\u(单位:mb
设置得更高)作为一种解决方法