这是我们小组中的一个普遍问题,我们的Hive查询经常扩展到消耗大多数可用的YARN执行程序和CDH集群上的内存。虽然潜在的问题在于我们表中的分区数量以及连接的复杂性,但我们无法自由地重建这些表。我们可以通过配置spark.dynamicAllocation.maxExecutors和spark.executor.memory来控制Spark中的资源消耗。我们可以在Hue上使用类似的东西,以便Hue能够与群集中的其他工作“很好地”发挥作用吗?
答案 0 :(得分:1)
是的,您可以通过Hue
启动的Hive
查询更好地管理正在使用的Hadoop群集计算资源的数量。
为此,您需要先配置YARN调度程序队列;对于Cloudera的CDH发行版,这些称为动态资源池
中详细了解此主题为Hue启动的,半交互式的Hive查询配置了一个池后,您可以通过为{{1}的值传递资源池名称来指示Hive到此池以进行单个查询。 }键。
让我们假装我们的队列名称为mapred.job.queue.name
。我们会在HiveQL查询语句之前添加这个interactive.hive_queue
语句:
SET
您可能需要更新Hue配置hue.ini
以允许您的Hue用户传递此配置值
您还应该能够为Hue创建一个已保存的Hive配置,以便始终将此YARN队列用于Hue启动的Hive查询。
(这假设你正在为你的Hive查询使用mapreduce(mr2)执行引擎)
如果要更改所有Hive查询的队列,可以通过更改Hive Server2配置SET mapred.job.queue.name=interactive.hive_queue;
来完成此操作。这种变化看起来像:
hive-site.xml
答案 1 :(得分:0)
Hue是一个用户界面,无法控制Hive使用的资源数量。这由YARN通过调度策略控制。对于CDH群集,通常使用公平调度程序。
http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/FairScheduler.html
您应该查看以下内容,了解有关如何进行此设置的一些背景信息。