我使用Apache Hive 2.1.1-cdh6.2.1(Cloudera发行版(,MR作为执行引擎,YARN的资源管理器使用Capacity调度器。
我想试试Spark作为Hive的执行引擎。在浏览文档时,我发现了一个奇怪的限制:
需要公平调度程序而不是容量调度程序。这为YARN集群中的作业公平地分配了同等份额的资源。
正确设置所有队列,这对我来说是非常不可取的。
有可能用YARN容量调度程序在Spark上运行Hive吗?如果没有,为什么?
我不确定您是否可以使用火花引擎执行Hive。我强烈建议您将Hive配置为使用Tezhttps://cwiki.apache.org/confluence/display/Hive/Hive+它比MR更快,而且与Spark非常相似,因为它使用DAG作为任务执行引擎。
我们在工作中使用Beeline上的命令运行它https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+开始只是在sql文件的开头写它来运行
set hive.execution.engine=spark;
select ... from table....
我们不使用容量调度程序,因为每个纱线队列有数百个作业在运行,当作业需要资源时,我们有其他队列让它们运行。这也允许基于每个队列的作业消耗来设计配置,基于作业组的实际需要更现实
希望这能帮助