0

我正在研究 AWS 上的 Hive(特别是 EMR)。他们提供了两种选择

  1. 生成一个 Ad-hoc 集群,其中在评估执行预先指定的 Hive 查询(在引导程序中)之后拆除 EMR 集群。
  2. 以交互模式生成 Hive 集群,可以通过 SSH 连接到主节点并使用hive命令行客户端提供 Hive 查询。

显然,在第二个选项中,集群将保持活动状态,直到明确要求终止。

我想修改保持活动蜂巢集群中从节点的数量。我在emr faq中读到它只支持添加和删除,task-nodes但仅支持添加(但不删除)core-nodes. 核心节点对 HDFS 存储有贡献,但任务节点没有。

我想将更多核心节点添加到正在运行的集群中,并在运行的查询数量较少时缩小它们。有没有办法实现这一点(可能是使用 cloudwatch)?

4

4 回答 4

5

查询数量的增减与任务节点的数量(Hadoop 的计算部分)的相关性更大,而与核心节点的数量(Hadoop 的数据存储部分)的相关性较小,因为数据量没有变化。

当您想要扩大和缩小查询时重新平衡和重新分配数据并不是一个好主意。它太慢太复杂,无法带来任何真正的好处。

“按需付费”和无需配置 EMR 的快速启动应该会鼓励您在不需要时关闭集群,并在需要时启动新集群。您可以在 EMR 上优化 Hive,以便在集群启动之间将表元数据存储在外部 MySQL 数据库中,以避免丢失或重复表定义。

于 2013-02-22T20:41:19.540 回答
2

您可以查看Themis,这是 Atlassian 开发的 EMR 自动缩放框架。当前功能包括主动和被动自动缩放,它带有一个 Web UI,并且该工具非常易于配置。

(很抱歉在旧帖子中发帖,但对于发现此帖子的读者来说,答案可能仍然很有趣。)

于 2016-07-27T14:21:38.380 回答
1

让数据节点也扩大规模是有一些价值的。对于长时间运行的集群,仅使用任务节点扩展太多可能会导致 HDFS 瓶颈(如果有大量中间数据。)

你考虑过看趣博乐吗?Qubole 提供基于负载的自动扩展和缩减。用户配置具有最小和最大从节点的集群。这些将是任务节点和数据节点。

于 2015-09-24T20:00:38.017 回答
0

我知道我在这里聚会有点晚了,但我多次遇到类似的问题,我想分享一个可能的替代方案。我编写了一个 Java 工具来在处理过程中动态调整 EMR 集群的大小。它可能会帮助某人。在以下位置查看:

http://www.lopakalogic.com/articles/hadoop-articles/dynamically-resize-emr/

源代码在 Github 上可用

于 2016-08-21T21:50:35.927 回答