Hadoop集群基础设施建设

   2012年底-2013年初的这段时间主导建设了一个14节点的Hadoop集群,亲历了从硬件选型到平台搭建的过程,
建设过程中有一些经验和建议,希望和大家分享,也请各位高人批评指正:
    14台服务器分为2组:
    组1是2台IBM 3650M4服务器,运行的是节点分别是NN、JT和2NN,NN和JT在同一台服务器上,随着集群规模的增大,最好将NN和JT分开。
    组2是12台DELL R720服务器,运行的是DN和TT

一、关于服务器
NN、JT服务器:原则是可靠性高
(1)NN和JT最突出的问题是内存压力大,我们配了96G,给NN分配了48G,JT分配了32G,Hadoop每个目录
或文件的元数据在150字节左右,大家可以算一下自己的Hadoop集群NN需要多少内存,由于早期版本的NN很难停机维护,所以这里建议大家最好一步到位。
(2)我们配了2颗四核2.4GHz的CPU,现有规模够用了,如果预算充足推荐八核且有超线程技术。
(3)硬盘用的是6块600G的15000转的SAS盘,做了RAID5,RAID5会降低一些读写性能,其实这个地方我们认为做RAID 0或者RAID 10或者什么都不做也可以,因为恢复NameNode的数据现在通常用backupNode的方式。

DN和TT服务器:原则是性价比越高越好
(1)最重要是磁盘的选择,要廉价且容量大,每个服务器配的是8块2TB的SATA磁盘,能插满就插满,千万不要做RAID,但是有些服务器现在带了RAID控制卡,去不掉RAID,如果这样就每块盘做一个RAID0,关于为什么不要做RAID,Hortonworks工程师写过一篇文章分析过原因,最主要问题是做了RAID后坏一块盘会导致整个RAID组失败,其实另外的盘也许还可以使用,这会造成瞬间大量的Block复制,网络压力突然变大。
(2)内存还是尽量足够,我们配了32G,每个MapReduce都是运行在独立JVM中,所以内存也不能太小。
(3)CPU需要说明一下,都说Hadoop不吃CPU,其实不是,得看什么操作,全局排序耗CPU很厉害,所以这里推荐大家尽量不要选择太低的,我们配的是2颗四核的1.8GHz的,我觉得太低,用2颗四核2.4GHz带超线程技术的差不多。

二、关于网络:
(1)交换机:Hadoop存储是有机架放置策略的,我们就2台交换机,做得是热备形式的,14台服务器放置在2个机架上,没有利用机架放置策略,这里建议大家集群节点多了一定利用机架策略,有利于保障数据不丢失。
(2)做完网络一定用ethtool工具看一下协商好的网卡速率有多少,我们有4台服务器协商后是100MB/s,这对性能影响很大,通常问题出在网线没做好上,多块网卡是必须的,1000M的带宽对于Hadoop根本不够用,所以要多网卡做绑定,这里注意的一点是每个厂家的交换机绑定方法不同,比较麻烦,而且没做好不容易看出来。

     综上所述,大规模Hadoop集群基础设施建设是很庞大的工作,最好网络工程师、系统工程师、Hadoop工程师进行充分的沟通后制定合理的建设方案。



猜你喜欢

转载自mercy.iteye.com/blog/1844643