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

2exbekwf  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(245)

实际上,我正在尝试用hadoop实现一个解决方案,在cdh5.0上使用hive和yarn。所以我的体系结构是:1 namenode 3 datanode我查询的是约1.23亿行和21列
我的节点是用2vcpu@2.27和8个go ram虚拟化的
所以我尝试了一些请求,得到了一些结果,然后我在一个基本的mysql中使用相同的数据集尝试了相同的请求,以便比较结果。
实际上mysql比hive快得多。所以我想知道为什么。我知道我有一些糟糕的表现,因为我的主人。我的主要问题是:我的集群规模是否合理?
我需要为这个数量的数据添加相同的datanode吗(我认为这个数量不是很大)?
如果有人尝试了一些架构大致相同的请求,欢迎您与我分享您的结果。
谢谢!

relj7zay

relj7zay1#

我要查询约1.23亿行21列[…],这在我看来不是很大
这正是问题所在,并不是很大。hive是一个大数据解决方案,并不是设计用来运行像您使用的那样的小数据集。就像用铲车把厨房里的垃圾运走一样。当然,它会起作用,但是用手拿出来可能更快。
现在,说到这里,如果您希望实时性能更接近传统rdbms,那么您有两个选择。
hive0.13+使用了tez、orc和其他一些优化,大大提高了响应时间
impala(cdh发行版的一部分),它完全绕过了mapreduce,但在文件格式支持方面更为有限。
编辑:
我是说,使用2个数据节点时,我的性能与使用3个数据节点时相同
这一点也不奇怪。由于hive使用mapreduce来处理查询操作符(join、group by等),因此它会产生mapreduce带来的所有成本。不管数据的大小和数据节点的数量如何,这个代价或多或少都是恒定的。
假设您有一个包含100行的数据集。在mapreduce初始化中,您可能会看到98%的处理时间,在实际数据处理中,您可能会看到2%的处理时间。随着数据大小的增加,与所花费的总时间相比,与mapreduce相关的成本变得微不足道。

相关问题