0

我已经建立Cloudera Hue并拥有一个 200 Gib 和 16 Gib RAM 的主节点集群以及每个 150 Gib 和 8 Gib Ram 的 3 个 datnodes。

我有大约 70 Gib 的数据库。问题是当我尝试从 hive editor( HUE GUI) 运行 Hive 查询时。如果我提交 5 到 6 个查询(用于执行),作业已启动,但它们挂起并且从不运行。如何按顺序运行查询。我的意思是即使我可以提交查询,但新查询应该只在上一个查询完成时才开始。有什么办法可以让查询一一运行吗?

4

3 回答 3

1

您可以一次性运行所有查询,并使用“;”分隔它们 在色调。

例如:

查询1;查询2;查询3

在这种情况下,query1、query2 和 query3 将依次运行

于 2014-09-24T10:06:31.740 回答
0

Hue 提交所有查询,如果它们挂起,则意味着您可能在 YARN 中遇到了错误配置,例如问题 #5 http://blog.cloudera.com/blog/2014/04/apache-hadoop-yarn-avoiding- 6个耗时的陷阱/

于 2014-09-23T16:46:31.490 回答
0

所以YARN/MR2的整个流程如下

  1. 查询是从 HUE Hive 查询编辑器提交的
  2. 作业已启动,资源管理器在其中一个数据节点上启动应用程序主控
  3. 这个应用程序主向资源管理器请求资源(例如 2 * 1Gib/ 1 Core)
  4. 资源管理器将这些资源(称为节点管理器,然后运行映射和减少任务)提供给应用程序主控。

所以现在资源分配由 YARN 处理。在 cloudera 集群的情况下,动态资源池(一种队列)是提交作业的地方,然后由纱线为这些作业完成资源分配。默认情况下,最大并发作业的值以这样一种方式设置:资源管理器将所有资源分配给所有作业/应用程序主服务器,没有为任务容器留下空间(这是在稍后阶段由应用程序主服务器运行任务所必需的。)

http://www.cloudera.com/content/cloudera/en/resources/library/recordedwebinar/introduction-to-yarn-and-mapreduce-2-slides.html

因此,如果我们在 HUE Hive 编辑器中提交大量查询以执行,它们将作为作业同时提交,并且它们的应用程序主控将被分配资源,没有为任务容器留下空间,因此所有作业都将处于挂起状态。

解决方案如上所述@Romain

根据集群的大小和能力设置 max no of concurrent jobs 的值。在我的情况下,它的值为 4 现在只有 4 个作业将从池中同时运行,并且它们将由资源管理器分配资源。

于 2014-09-24T08:01:35.260 回答