提高Spark中Cassandra的读取速度(并行读取实现)

时间:2016-03-23 09:18:28

标签: apache-spark cassandra pyspark

我是Spark的新手,并试图将Cassandra和Spark结合起来做一些分析任务。

在Spark Web UI中,我发现大多数时间都是在阅读过程中消耗的。

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

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

P.S。我正在使用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< ck_2"

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

1 个答案:

答案 0 :(得分:0)

如果您提供有关群集,Spark和Cassandra版本及相关内容的更多详细信息,将能够回答这一点。尽管我会按照我的理解尝试回答它。

  1. 确保您正在分区RDD parallelized-collections
  2. 如果您的火花作业仅在单个执行程序上运行,请验证spark submit命令。您可以根据集群管理员获取有关spark submit commands here的更多详细信息。
  3. 为了加快Cassandra读取操作,请使用正确的索引。我将建议使用Solr,它将帮助您从Cassandra快速检索数据。