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

Setting up a Hadoop Cluster on Amazon Web services with EBS

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

  1. 如果我丢失了 Spot 实例会怎样。我如何让集群继续运行。
  2. 我正在处理一些大小为 1TB 的数据集。是否可以相应地设置 EBS。在这种情况下如何访问 HDFS。

任何帮助都会很棒!

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

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

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

关于您的问题:

hadoop 中主要有三种类型的节点:

Master - 单节点,不用点.

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

Task - 处理任务的节点,但不属于 HDFS

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

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

1 个集群 < 四个节点

2 个用于小于 10 个节点的集群

所有其他集群为 3

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