我对蜂巢和hadoop的性能有什么期望?

时间:2014-04-28 08:36:19

标签: hadoop hive cloudera-cdh

我实际上是尝试使用Hive在CDH 5.0上使用Harn实现Hadoop解决方案。所以我的架构是: 1 Namenode 3 DataNode 我用21列查询了大约1.23亿行

我的节点使用2vCPU @ 2.27和8 GO RAM进行虚拟化

所以我尝试了一些请求,得到了一些结果,之后我在基本的MySQL中尝试了相同的数据集,以便比较结果。

实际上MySQL比Hive快得多。所以我试图理解为什么。我知道因为我的主人而有一些不好的表现。我的主要问题是:我的集群是否正在调整大小?

我是否需要为此数据量添加相同的DataNode(在我看来这不是很大)?

如果有人尝试使用大致相同的架构,我们欢迎您将结果分享给我。

谢谢!

1 个答案:

答案 0 :(得分:0)

  

我查询了大约1.23亿行,包含21列 [...] ,这在我看来并不是很大

这正是问题所在,并不是很大。 Hive是 大型 数据解决方案,并不适用于像您使用的小型数据集一样运行。这就像试图用叉车取出厨房垃圾一样。当然,它会起作用,但手动取出可能会更快。

现在,尽管如此,如果您希望实时性能更接近传统RDBMS,那么您有几个选择。

  • Hive 0.13+使用TEZ,ORC和其他一些可以大大缩短响应时间的优化
  • Impala(CDH发行版的一部分)完全绕过MapReduce,但在文件格式支持方面受到更多限制。

修改

  

我说有2个数据节点我的性能与3

相同

这一点都不奇怪。由于Hive使用MapReduce来处理查询运算符(join,group by,...),因此会产生MapReduce带来的所有成本。无论数据大小和数据节点数量如何,此成本或多或少都是恒定的。

我们假设您有一个包含100行的数据集。您可能会在MapReduce初始化中看到98%的处理时间,在实际数据处理中看到2%的处理时间。随着数据大小的增加,与总时间相比,与MapReduce相关的成本变得微不足道。