我是 Hadoop 新手,正在尝试了解如何安装/配置它。从文档中,我看到 Hadoop 通常应该了解物理服务器配置(例如在机架之间复制数据)。因此,我不清楚,如果 Hadoop 安装在某个虚拟机管理程序层之上(例如使用 OpenStack),在这种情况下如何实现正确的复制。您能指出这方面的文章/文档吗?
答案1
这取决于您的拓扑。
如果您将 OpenStack 环境分布在多个机架/交换机上,并计划移动 Hadoop HDFS 节点,那么您就无法指定拓扑(或者您需要在每次移动 VM 后更改它)。
它仍将正常工作,只是效率不如裸机服务器,并且抗中断能力较差。
欲了解更多信息,请阅读:http://wiki.apache.org/hadoop/Virtual%20Hadoop
其中还指出:
最重要的影响是在存储方面。Google 的 GFS 和 Hadoop 的 GFS 的核心架构设计都是三向复制到本地存储,这是一种低成本但可靠的存储 PB 级数据的方式。此设计基于 Hadoop 的物理拓扑(机架和主机)感知,因此它可以智能地将数据块放置在机架和主机之间,以在主机/机架故障时幸存下来。在某些云供应商的基础设施中,这种设计可能不再有效,因为它们不会向客户公开物理拓扑(甚至是抽象的)信息。在这种情况下,当有一天您的所有数据都消失了时,您会感到失望,如果在阅读此页面后发生这种情况,请不要抱怨:您已被警告。如果您的云供应商确实以某种方式公开了此信息(或承诺它们是物理的而不是虚拟的)或您拥有自己的云基础设施,情况就不同了,您仍然可以拥有像在物理环境中一样可靠的 Hadoop 集群。