使用 EBS 在 Amazon Web 服务上设置 Hadoop 集群

Posted

技术标签:

【中文标题】使用 EBS 在 Amazon Web 服务上设置 Hadoop 集群【英文标题】:Setting up a Hadoop Cluster on Amazon Web services with EBS 【发布时间】:2017-07-28 16:44:49 【问题描述】:

我想知道如何通过 AWS 设置一个 hadoop 集群(比如 5 个节点)。我知道如何在 EC2 上创建集群,但我不知道如何面对以下挑战。

    如果我丢失了我的 Spot 实例会发生什么。如何保持集群运行。 我正在处理一些大小为 1TB 的数据集。是否可以相应地设置 EBS。在这种情况下如何访问 HDFS。

任何帮助都会很棒!

【问题讨论】:

【参考方案1】:

根据您的要求,这些建议会有所变化。但是,假设有 2 个 Master 和 3 Worker 设置,您可能可以将 r3 实例用于 Master 节点,因为它们是内存密集型应用程序优化的,而 d2 实例用于工作节点。 d2 实例有多个本地磁盘,因此可以承受一些磁盘故障,同时仍然保持数据安全。 要回答您的具体问题,

    将 Hadoop 机器视为任何 linux 应用程序。如果您的通用 centOS Spot 实例丢失会怎样? Hwnce,一般建议使用预留实例。 Hadoop 通常通过维护 3 个副本并以 128 或 256 MB 块的形式将它们分布在工作节点上来存储数据。因此,您将有 3TB 数据存储在三个工作节点上。显然,在计算空间需求时,您必须考虑一些开销。

【讨论】:

【参考方案2】:

您可以使用 AWS 的 EMR 服务 - 它专为 EC2 实例之上的 Hadoop 集群而设计。 它是完全托管的,并且预装了您在 Hadoop 中需要的所有服务。

关于您的问题:

hadoop 中的节点主要分为三种:

Master - 单个节点,不需要发现它。

Core - 一个处理任务的节点,拥有 HDFS 的一部分

Task - 处理任务的节点,但不包含 HDFS 的任何部分

如果任务节点丢失(如果它们是现场实例),集群将继续正常工作。

关于存储,EMR中默认的复制因子如下:

1 用于集群

2 个用于集群

3 对于所有其他集群

但你可以改变它 - http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hdfs-config.html

【讨论】:

以上是关于使用 EBS 在 Amazon Web 服务上设置 Hadoop 集群的主要内容,如果未能解决你的问题,请参考以下文章

Amazon AMI 和 EBS 快照有啥区别

Amazon EBS 性能提示

Amazon EMR:将 EBS 卷附加到实例时如何确保使用该卷

预热Amazon EBS Volumes

如何为每个 AMI/EBS 设置自动计划快照?

将 Amazon EC2 EBS Ubuntu 迁移到 Microsoft Azure