【问题标题】:Improve reading speed of Cassandra in Spark (Parallel reads implementation)提高 Spark 中 Cassandra 的读取速度(并行读取实现)
【发布时间】:2016-03-24 12:18:25
【问题描述】:

我是 Spark 的新手,正在尝试结合 Cassandra 和 Spark 来完成一些分析任务。

从 Spark web UI 我发现大部分时间都消耗在阅读过程中。

当我深入研究这个特定任务时,我发现只有一个执行者在处理它。

是否可以通过并行化等技巧来提高此任务的性能?

附言我正在使用 pyspark cassandra 连接器 (https://github.com/TargetHolding/pyspark-cassandra)。

更新:我正在使用一个运行 Spark 1.6 的 3 节点 Spark 集群和一个运行 Cassandra 2.2.4 的 3 节点 Cassandra 集群。 我正在以

的形式选择数据

"select * from tbl where partitionKey IN [pk_1,pk_2,....,pk_N] where clusteringKey > ck_1 和 clusteringKey

UPDATE2:我读过一篇文章,建议用并行读取替换 IN 子句。 (https://ahappyknockoutmouse.wordpress.com/2014/11/12/246/) 如何在 spark 中实现?

【问题讨论】:

  • 您能否提供有关集群的更多详细信息,例如节点数、资源以及您使用的集群管理器?

标签: apache-spark cassandra pyspark


【解决方案1】:

如果您提供有关集群、spark 和 Cassandra 版本及相关内容的更多详细信息,将能够回答。虽然我会根据我的理解尝试回答。

  1. 确保您正在分区 RDD parallelized-collections
  2. 如果您的 spark 作业仅在单个 executor 上运行,请验证 spark submit 命令。您可以根据集群管理器获取有关 spark submit commands here 的更多详细信息。
  3. 为了加快 Cassandra 读取操作的速度,请使用适当的索引。我会推荐使用Solr,这将有助于您从 Cassandra 快速检索数据。

【讨论】:

  • 您使用的是哪个 Spark 集群管理器?我上面给出的建议你看过了吗?
  • 我使用的是 Spark 自带的管理器。感谢所有建议,但 (1) 我不太确定如何根据 RDD 查询 Cassandra。 (2) 由于其他任务能够并行运行,我猜配置应该没问题。 (3) 感谢您的建议,但如果我没记错的话,Solr 与查询的并行化无关?
  • 好的。是的,对。 Solr 与查询并行化无关,但它确实有助于快速检索您想要的数据。
猜你喜欢
  • 2011-03-04
  • 2015-06-15
  • 2019-06-22
  • 2016-11-23
  • 2022-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多