当有Hive TEZ时,Hive的LLAP有什么用?

时间:2018-04-24 07:07:10

标签: hadoop hive hdfs

在我们的项目中,我们将数据从Greenplum数据库加载到HDFS(HIVE)。最近,我开始知道有一个新的捆绑Hive2,'LLAP'。我对LLAP的概念感到困惑。 LLAP的确切用途是什么?当我们已经拥有Hive的TEZ引擎时,LLAP有什么用?我们项目中的开发人员告诉我,我们正在使用Hive LLAP将数据加载到HDFS Hive表中。使用LLAP是一个好习惯吗?如果没有,为什么不呢?

有人能给我一些关于上述问题的清晰度吗?

2 个答案:

答案 0 :(得分:2)

https://cwiki.apache.org/confluence/display/Hive/LLAP是了解Hive Live Long And Process(LLAP)的好地方。

正如链接所说

  

LLAP在现有的基于进程的Hive执行中工作,以保持Hive的可伸缩性和多功能性。它不会取代现有的执行模型,而是会增强它。

  

LLAP不是执行引擎(如MapReduce或Tez)

相反,它提供了一个长期守护进程(因此是缩写的LL部分)来替换与DataNode的交互,并且该守护进程还提供缓存,预取和一些查询处理。这允许简单查询在很大程度上由守护程序本身处理,并且像往常一样在YARN容器中执行更复杂的查询。

该链接还显示了Tez AM如何能够超越所有这些,并提交通过LLAP运行的Hive任务,LLAP根据需要与DataNode进行交互。在该示例中,查询的初始阶段被推送到LLAP中,但是大型混洗在单独的容器中执行。

答案 1 :(得分:1)

LLAP节点是Tez和Hadoop数据节点之间的附加节点层(一个Hadoop数据节点为一个LLAP节点),可以缓存数据并处理某些查询。查询执行仍由Tez安排和管理。

LLAP节点具有守护程序,该守护程序可以缓存数据,如果一次又一次地访问公用数据,则可以加速查询。

简而言之,它提高了性能,您将在蜂巢中使用LLAP获得非常好的性能。 Hive也可以在没有LLAP的情况下工作,但速度可能会变慢。

enter image description here