gpt4 book ai didi

apache-spark - spark datasax cassandra 连接器从沉重的 cassandra 表读取速度慢

转载 作者:行者123 更新时间:2023-12-04 04:44:16 25 4
gpt4 key购买 nike

我是 Spark/Spark Cassandra 连接器的新手。我们在我们的团队中第一次尝试 spark,我们正在使用 spark cassandra 连接器连接到 cassandra 数据库。

我写了一个查询,它使用了数据库的一个大表,我看到 Spark Task 直到对表的查询获取了所有记录后才启动。

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

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

  CassandraJavaUtil.javaFunctions(sparkContextManager.getJavaSparkContext(SOURCE).sc())
.cassandraTable(keyspaceName, tableName);

有没有办法告诉 spark 开始工作,即使所有数据都没有完成下载?

是否可以选择告诉 spark-cassandra-connector 使用更多线程来获取数据?

谢谢,咳咳。

最佳答案

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

Iterate large Cassandra table in small chunks

Set number of tasks on Cassandra table scan

编辑:

在对一些 Spark 配置参数进行一些性能测试后,我发现当我没有为 Spark 执行程序提供足够的内存时,Spark 创建了太多的表分区。在我的例子中,将内存增加 1 GB 足以使输入拆分大小参数变得不必要。如果您不能为执行程序提供更多内存,您可能仍需要将 spark.cassandra.input.split.size_in_mb 设置得更高作为一种变通方法。

关于apache-spark - spark datasax cassandra 连接器从沉重的 cassandra 表读取速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31842096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com