Hadoop 与hive相比,impala如何提供更快的查询响应
我最近开始研究使用Hive和Impala查询HDF上的大型CSV数据集。正如我所期望的,对于我目前使用的查询,与Hive相比,使用Impala可以获得更好的响应时间 我想知道是否有一些类型的查询/用例仍然需要配置单元,而黑斑羚并不适合 对于HDFS上的相同数据,与Hive相比,Impala如何提供更快的查询响应?您应该将Impala视为“HDFS上的SQL”,而Hive更像是“Hadoop上的SQL” 换句话说,黑斑羚甚至根本不使用Hadoop。它只是在所有节点上运行守护进程,这些节点缓存HDFS中的一些数据,这样这些守护进程就可以快速返回数据,而无需执行整个Map/Reduce作业 这样做的原因是,运行Map/Reduce作业需要一定的开销,因此通过将Map/Reduce一起短路,您可以在运行时获得相当大的收益Hadoop 与hive相比,impala如何提供更快的查询响应,hadoop,hive,impala,Hadoop,Hive,Impala,我最近开始研究使用Hive和Impala查询HDF上的大型CSV数据集。正如我所期望的,对于我目前使用的查询,与Hive相比,使用Impala可以获得更好的响应时间 我想知道是否有一些类型的查询/用例仍然需要配置单元,而黑斑羚并不适合 对于HDFS上的相同数据,与Hive相比,Impala如何提供更快的查询响应?您应该将Impala视为“HDFS上的SQL”,而Hive更像是“Hadoop上的SQL” 换句话说,黑斑羚甚至根本不使用Hadoop。它只是在所有节点上运行守护进程,这些节点缓存HDF
这就是说,黑斑羚不会取代蜂巢,它适用于非常不同的用例。与Hive相比,Impala不提供容错性,所以如果在查询过程中出现问题,那么它就消失了。对于ETL类型的工作,如果一项工作失败的成本会很高,我建议使用Hive,但对于小型即席查询,例如对于只想查看和分析一些数据而不构建健壮工作的数据科学家或业务分析师来说,Impala是非常棒的。同样从我个人的经验来看,黑斑羚还不是很成熟,有时当数据量大于可用内存时,我会看到一些崩溃。IMHO,HDFS上的SQL和Hadoop上的SQL是一样的。毕竟Hadoop是HDFS(还有MapReduce)。所以,当我们说HDFS上的SQL时,可以理解它是Hadoop上的SQL(可以有MapReduce,也可以没有MapReduce) 回到实际问题上来,黑斑羚提供更快的响应,因为它使用了
MPP
(大规模并行处理),而Hive在引擎盖下使用MapReduce,这涉及到一些初始开销(如Charles sir所述)。大规模并行处理(Massively parallel processing,Massively parallel processing,Massively parallel processing,Massively parallel processing,Massively parallel processing,Massively parallel processing,Massively parallel processing,Massively parallel processing)是一。事实上,Impala基于MPP,不涉及MapReduce作业的开销,即。作业设置和创建、插槽分配、分割创建、地图生成等,使其速度极快
但这并不意味着黑斑羚能解决你所有的问题。由于高度内存密集型(MPP),它不适合需要大量数据操作(如连接等)的任务,因为您无法将所有内容都放入内存中。这就是蜂巢更适合的地方
因此,如果您需要实时,可以使用Impala对数据子集进行特别查询。如果你对大数据有批量处理的需求,那就去Hive吧
HTH黑斑羚有一些关键特性使其速度更快
Impala不会取代MapReduce或将MapReduce用作处理引擎。让我们先了解一下Impala和Hive之间的关键区别