如何在ec2的不同机架中创建两个示例(aws中的机架意识)

piok6c0g  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(477)

我正在尝试创建一个hadoop集群。我正在使用一个修改过的hadoop源代码,它将根据机架的工作负载将任务调度到不同的机架。为了测试这一点,我希望我的数据节点的一半在一个机架上,另一半在另一个机架上。我如何确保这一点?

zysjyyx4

zysjyyx41#

amazonec2上没有“机架”的概念。您拥有的唯一控制级别是可用性区域,它是一个物理上不同的数据中心。但是,hadoop集群总是在同一个az中运行以提高速度,这也是因为如果主节点失败,整个集群都会失败(这是在emr上的——如果您已经部署了自己的集群,您可以使用multi-az。)
如果你关心的是避免多次停电,我的建议是“别担心!”。hadoop是为处理失败而设计的,因此如果一个节点失败,它将把工作发送给其余的节点。您可以向集群提供其他节点来替换失败的节点,但这不是自动完成的。
与其将“我的数据节点的一半放在一个机架上,另一半放在另一个机架上”,很有可能每个节点都放在不同的主机上,因此您可能只需要两个“机架”就可以获得更广泛的基础设施。但是,您无法看到这种位置。
另外,建议您将持久数据存储在amazons3中,而不是hdfs中。这样,您就可以终止集群,并且您的数据仍然可用,最坏的情况是,如果集群失败,您的数据仍然可用。这比正常的本地hadoop部署要好,因为它不会丢失hdfs。
一句话:别担心。部署集群并监视它们以查看失败是否确实是一个问题。

ilmyapht

ilmyapht2#

你可以通过排列放置组来完成

首先创建排列放置组。
启动示例并指定它们属于此排列组。

aws文件

排列放置组是一组示例,每个示例放置在不同的机架上,每个机架都有自己的网络和电源。
下图显示了单个可用性区域中放置在排列放置组中的七个示例。七个示例放在七个不同的机架上。
对于具有少量关键示例的应用程序,建议使用分散放置组,这些示例应彼此分开。在排列放置组中启动示例可降低示例共享同一机架时可能发生的同时故障的风险。分散放置组提供对不同机架的访问,因此适合随时间混合示例类型或启动示例。
排列放置组可以跨同一区域中的多个可用区域。每个可用性区域每个组最多可以有七个正在运行的示例。
如果启动或启动排列放置组中的示例,并且没有足够的唯一硬件来满足请求,则请求将失败。随着时间的推移,amazonec2提供了更多不同的硬件,因此您可以稍后再次尝试您的请求。
https://docs.aws.amazon.com/awsec2/latest/userguide/placement-groups.html

三个安置小组简介

亚马逊ec2实习组:saa-c02 aws认证解决方案架构师助理考试2020

相关问题