0

我们正在从 AWS MapReduce 迁移到我们自己机架上的 Hadoop 集群。最初,我们将有 7 台服务器专用于 Hadoop/HDFS。

我们存储在 HDFS 上的数据将是关键任务,我不希望我们有备份选项(至少在我们使用的第一天没有),所以我想尽我所能来保证连续性。

我还想充分利用我们的计算能力,因为我们的工作可以轻松地使用双倍的硬件。

  • 在这个 7 服务器集群中,我应该为每个盒子指定什么用途?特别是哪些进程应该重叠(例如,备份名称节点是否应该共享一个框作为任务节点和类似的?)
4

1 回答 1

0

我们最后做的是这样的:

使用 LXC(LXC 是这里的关键组件),我们在 2 个服务器上为作业管理器、namenode 和其他各种管理组件创建了单独的容器,因为 namenode 和作业管理器是资源最密集的,我们将它们分开这 2 台服务器(每个组件都在自己的独立 LXC 容器中)。我们在这两个服务器之间拆分的其余组件。

然后,我们为这两个“管理”服务器中的每一个部署了一个“简化的”数据节点和任务跟踪器。我们使用 LXC 的控制组以牺牲数据/任务节点为代价将 CPU 和磁盘优先级分配给管理组件。我们使用 Cloudera Manager 的简化配置,轻松将数量减少的任务槽部署到这两个盒子上的数据/任务节点。

这样我们就充分利用了硬件,其余的盒子都是专用的“普通”数据/任务节点。

我们当然有一个备份名称节点在与作业跟踪器相同的物理主机上运行,​​而主名称节点在第二个物理盒子上,这给了我们备份。我们还在 3 台工作机器上的 LXC 容器中安装了使用空间 NTFS 客户端,并让 namenode 在那里写出配置的副本作为进一步的备份。

我们确实将我们的名称节点松动到硬件故障一次(磁盘),并且能够成功地从辅助节点恢复它。

于 2013-10-19T03:18:26.683 回答