具有7台服务器的Hadoop架构 - 平衡连续性和性能

时间:2013-03-13 03:20:07

标签: architecture hadoop hdfs

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

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

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

  • 我应该在这个7服务器群集中标记每个框?特别是哪些进程应该重叠(例如,备份名称节点是否应该将一个框作为任务节点共享?类似的?)

1 个答案:

答案 0 :(得分:0)

我们最终做的是:

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

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

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

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

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