使用hadoop执行复杂查询

时间:2016-03-02 12:18:47

标签: hadoop

我们有1 TB大小的mysql数据库。如果我们使用多个连接执行任何复杂查询,那么系统将花费大量时间来执行。有人建议bigdata Hadoop可以解决这个性能问题。您能解释一下如何使用Hadoop集群实现这一目标,以及我需要使用的所有概念,即Apache Hadoop,Sqoop,Spark,Hive?

3 个答案:

答案 0 :(得分:1)

同意@nagendra,您可以尝试使用Apache HAWQ,这是HAWQ for Pivotal HD(即HDB)的开源版本。它高度符合SQL标准和高性能,尤其适用于复杂查询。原因是它利用了RDBMS的MPP处理以及成熟的查询优化器ORCA和规划器。

以下是Apache HAWQ和ORCA的链接: http://hawq.incubator.apache.org https://github.com/greenplum-db/gporca

答案 1 :(得分:0)

Hadoop和Hive可以解决您的问题。由于Hadoop可以处理大数据,Hive可以使用类似于Hive查询语言(Hive QL)的语言查询大型数据集,因此也可以使用hive查询执行类似连接的复杂查询。请参阅链接:here

答案 2 :(得分:0)

您可以在hadoop上考虑以下sql解决方案。

  1. Cloudera Impala :apache hadoop的开源分析MPP数据库。

  2. Apache Hive :Hive提供了一种机制,用于将结构投影到数据上,并使用类似SQL的语言HiveQL查询数据。使用tez或spark启用配置单元可以提高性能。

  3. HAWQ for Pivotal HD :HAWQ是用于在HDFS中执行SQL查询的专有组件。因此,它是Pivotal唯一的产品,尽管Pivotal支持其并行SQL处理和高度符合SQL标准。