如何在EC2中的不同机架中创建两个实例?

时间:2017-10-06 20:00:49

标签: hadoop amazon-ec2

我正在尝试创建一个Hadoop集群。我正在使用修改后的Hadoop源,它将根据机架的工作负载将任务安排到不同的机架。为了测试这一点,我想将一半的Datanode放在一个机架上,另一半放在不同的机架上。我该如何确保这一点?

2 个答案:

答案 0 :(得分:0)

Amazon EC2上没有“机架”的概念。您拥有的唯一控制级别是可用区,这是一个物理上不同的数据中心。但是,Hadoop集群始终在同一个AZ中运行以提高速度,并且还因为如果主节点发生故障,整个集群将失败。 (这是在EMR上 - 如果您已经部署了自己的群集,则可以使用多个AZ。)

如果您的关注是避免多次停电,我的建议是“别担心!”。 Hadoop旨在处理故障,因此如果节点发生故障,它会将工作发送到其余节点。您可以为群集配置其他节点以替换故障节点,但这不是自动完成的。

不是将“我的一半数据节点放在一个机架而另一半放在另一个机架上”,而是很可能每个节点都在不同的主机上,所以你可能会得到一个更宽的基础设施的传播只有两个“机架”。但是,您无法看到此类展示位置。

此外,建议您在Amazon S3中存储持久数据,而不是在HDFS中存储。这样,您可以终止群集,并且您的数据仍然可用,最坏的情况是,如果群集出现故障,您的数据仍然可用。这比正常的本地Hadoop部署要好,不会丢失HDFS。

底线:不要担心。部署集群并对其进行监控,以确定故障是否真正成为问题。

答案 1 :(得分:0)

您可以通过点播展示位置组完成

  1. 首先创建一个扩展展示位置组。

  2. 启动实例并指定它们属于此传播组。

AWS文档

扩展放置组是一组实例,每个实例放置在不同的机架上,每个机架都有自己的网络和电源。

下图显示了单个可用区中的七个实例,这些实例被放置到一个扩展位置放置组中。七个实例放置在七个不同的机架上。

对于具有少量关键实例且应彼此分开的应用程序,建议使用扩展放置组。在扩展放置组中启动实例可降低实例共享同一机架时可能发生的同时发生故障的风险。分散放置组提供对不同机架的访问,因此适合随时间混合实例类型或启动实例。

一个扩展放置组可以跨越同一区域中的多个可用区。每个组的每个可用区中最多可以有七个正在运行的实例。

如果您启动或启动一个扩展放置组中的实例,并且没有足够的唯一硬件来满足该请求,则该请求将失败。随着时间的推移,Amazon EC2会提供更多独特的硬件,因此您可以稍后重试您的请求。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html

三个展示位置组的介绍

Amazon EC2 Placement Groups: SAA-C02 AWS Certified Solutions Architect Associate Exam 2020