我实际上正在尝试用Hadoop实现一个解决方案,在CDH5.0上使用Hive和Yarn。所以我的架构是:1,Namenode 3,DataNode,我在查询1.23亿行,有21列
我的节点被2 2vCPU @2.27和8 GO RAM虚拟化
所以我尝试了一些请求,得到了一些结果,然后在一个基本的MySQL中尝试了相同的请求,并使用相同的数据集来比较结果。
事实上,MySQL比蜂巢快得多。所以我想弄明白为什么。我知道因为我的主人我表现不好。我的主要问题是:我的集群是否具有良好的规模?
我是否需要为这个数量的数据添加相同的DataNode (在我看来,这并不是很大的数据)?
如果有人尝试使用相同架构的请求,欢迎您与我分享您的结果。
谢谢!
发布于 2014-04-28 22:28:10
我在查询1.23亿列21列.在我看来并不是很大
这正是问题所在,不是很大。Hive是一种大数据解决方案,它不适合在您使用的小数据集上运行。就像用叉车把厨房的垃圾拿出来一样。当然,它会起作用的,但是用手把它拿出来可能更快。
现在,尽管如此,如果您希望实时性能更接近传统的RDBMS,则有几种选择。
编辑:
我的意思是,使用2个datanodes,我得到的性能与3相同
这一点都不奇怪。因为Hive使用MapReduce来处理查询操作符(联接,分组,.)它会产生MapReduce带来的所有成本。不管数据的大小和数据的数量,这种成本或多或少都是恒定的。
假设您有一个包含100行的数据集。在MapReduce初始化中,您可能会看到98%的处理时间,在实际数据处理中,您可能会看到2%的处理时间。随着数据大小的增加,与MapReduce相关的成本与所花费的总时间相比变得微不足道。
https://stackoverflow.com/questions/23336270
复制相似问题