使用 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 集群的主要内容,如果未能解决你的问题,请参考以下文章