Apache spark 是否可以使用纱线容量调度器在Spark上运行Hive?

Apache spark 是否可以使用纱线容量调度器在Spark上运行Hive?,apache-spark,hadoop,hive,yarn,Apache Spark,Hadoop,Hive,Yarn,我使用ApacheHive2.1.1-cdh6.2.1(Cloudera发行版)和MR作为执行引擎,使用容量调度器使用Thread的资源管理器 我想试试Spark作为Hive的执行引擎。在经历过程中,我发现了一个奇怪的限制: 需要公平调度程序,而不是容量调度程序。这公平地分配了纱线集群中工作的同等资源份额 所有的队列都设置好了,这对我来说是非常不可取的 是否可以使用纱线容量调度器在Spark上运行Hive?如果没有,原因是什么?我不确定您是否可以使用火花发动机执行Hive。我强烈建议您将Hive

我使用ApacheHive2.1.1-cdh6.2.1(Cloudera发行版)和MR作为执行引擎,使用容量调度器使用Thread的资源管理器

我想试试Spark作为Hive的执行引擎。在经历过程中,我发现了一个奇怪的限制:

需要公平调度程序,而不是容量调度程序。这公平地分配了纱线集群中工作的同等资源份额

所有的队列都设置好了,这对我来说是非常不可取的


是否可以使用纱线容量调度器在Spark上运行Hive?如果没有,原因是什么?

我不确定您是否可以使用火花发动机执行Hive。我强烈建议您将Hive配置为使用比MR更快的Tez,它与Spark非常相似,因为它使用DAG作为任务执行引擎。

我们在工作时使用Beeline上的命令运行它,正如所述,只需在sql文件开始处编写它即可运行

set hive.execution.engine=spark;
select ... from table....
我们不使用capacity scheduler,因为每个纱线队列有数百个作业在运行,而当作业是资源密集型的时,我们有其他队列让它们运行。这还允许根据作业组的实际需要,根据每个队列的作业消耗量设计更现实的配置


希望这有帮助

您如何以这种方式运行配置单元脚本?看起来您实际上执行Spark作业时没有与Hive引擎进行任何交互。在文档中也没有找到
spark.hive.execution.engine
设置(spark和hive)。抱歉@goodok。我之所以键入另一个,是因为我认为您希望使用Spark中的配置单元参数,正如前面所述,但我可以看到您使用的是beeline之类的客户端。我说得对吗?请让我知道我是否错了Yep,确切地说,来自beelineOk,因此根据()可以在Spark应用程序上设置容量调度程序,指向已配置的队列。因此,如果运行beeline并将该参数添加到查询中,作为
sethive.execution.engine=spark并使直线在特定纱线队列上运行。但是请注意()谢谢你的建议,这就是为什么我更喜欢考虑Spark上的Hive,可能会从容量转移到公平调度:vs。从我的角度来看,Tez不是现在引入技术堆栈的最佳选择。感谢您的澄清!!是的,Spark的社区比Tez大。