SparkSQL连接池

时间:2015-03-12 12:04:48

标签: hive datastax apache-spark-sql

我在datastax 4.6中有4个节点集群,有2个spark,1个solr和1个cassnadra节点。我正在使用java从远程服务器请求sparksql查询执行(使用hive上下文)。在这个过程中,每当我连接到spark并使用hivecontext时,查询执行最多需要2分钟。可能是由于Hive Metastore而且随着表数量的增加,其执行时间也会增加。

有人可以建议任何解决方案吗?对象/连接池是这样的吗?

由于

1 个答案:

答案 0 :(得分:0)

Spark能够通过以懒惰的方式将数据拉入RDD来优化地图缩减。与Hadoop不同,它只在必要时从磁盘读取,并将数据缓存在内存中以便更快地访问。

当您在Spark中阅读Cassandra时,有一些可调参数和一些最佳实践可以帮助您优化性能:

  1. 查看stages如何在您的工作执行时发挥作用。找出需要时间的阶段将帮助您找出如何最佳地优化它。
  2. 在spark shell中使用LogicalPlan()查看spark要执行的步骤。
  3. 如果您正在执行shuffles,请避免使用它们 - 它们会消除数据位置的好处。
  4. 优化您的split size and page row size以便更快地阅读。
  5. 您是否尝试过比较SparkSQL和HiveContext之间的性能?虽然SparkSQL还没有完全成熟,但是在长期的情况下它仍将继续开发和改进,而蜂巢环境可能不会。尽可能使用SparkSQL。