MapReduce1.x运行在Hadoop之上,而现在MapReduce是运行在Yarn之上,Yarn主要包含两大组件,ResourceManger主要负责是管理资源,AppApplicationMaster主要是用来向ResourceManger申请资源以及向管理各个节点的子任务的执行。引入Yarn是因为taskTracker,joinTracker既要负责任务调度又要负责资源分配,导致负载非常重,于是把资源管理分给Yarn.
Hive是一个离线批处理的SQL查询框架,Hive跑在mapreduce之上,mapreduce又是跑在yarn之上。Impala把主要的计算逻辑都放在内存里来做,即用内存来提供直接的SQL查询,数据仍然存在HDFS中,但是他会把HDFS中可能或大概率用到的数据预加载到内存中,这样可以直接从内存中查询数据,提高了速度。Impala执行SQL语句比Hive性能要高3-50倍。Impala的缺点是吃内存。