最近,根据公司的需求,搭建了一个7个节点的Hadoop集群。这里把搭建的过程和碰到的问题作一个详细的描述,以供将来其他同事学习和参考。
硬件环境:(Cisco UCS C220 M3, 1T硬盘, 64G内存) * 8
操作系统:Ubuntu 14.04 LTS
一共8台服务器,其中1台作为Cloudera Manager的服务端,用来监控集群的健康状况,以及维护集群;另外7台作为大数据集群。具体分配如下:
主机IP角色tehdname1 10.167.192.224 Namenode
tehdname2 10.167.192.225 Secondary Namenode
tehdresmgr 10.167.192.226 YARN, Resource Manager
tehdapp1 10.167.192.227 运行其他非核心相关部件
tehdapp2 10.167.192.228 运行其他非核心相关部件
tehdapp3 10.167.192.229 运行其他非核心相关部件
tehdapp4 10.167.192.230 运行其他非核心相关部件
tehdmonitor 10.167.192.231 运行Cloudera Manager
2. 安装Ubuntu操作系统
对于UCS,我们可以使用U盘来安装Ubuntu系统。
注意,根据实践发现,UCS只有在BIOS中把南桥选项下面的RAID模式设置成Intel,在安装Ubuntu的过程中,才能识别硬盘,因此一定要选用支持Intel RAID的UCS。
另外,如果UCS之前已经配置过了LSI的RAID,则必须在BIOS里面设置成LSI RAID模式,然后删除掉所有的RAID配置,最后在BIOS中再设置成Intel RAID。
CDH本身不建议使用RAID,所以不要配置任何RAID。
安装过程不做具体说明了,建议每一台的分区都设定成一样。
在安装CDH前,我们需要进行一些必要的系统配置。在以下所有配置中,如果没有特殊说明,就需要在集群的所有节点上进行配置。完成以下所有配置后,重启所有节点,保证所有的配置都已经生效。
安装SSH
在安装CDH的过程中,Cloudera Manager需要通过SSH跳转到所有的节点上执行任务,另外SSH也为将来的远程维护提供方便。
安装ntp
sudo apt-get update sudo apt-get -y --force-yes install ntp配置无密码sudo提升至root用户
在安装CDH的过程中,Cloudera Manager需要在节点上通过sudo直接提升至root权限,而不需要在输入密码,因此需要另外创建一个用户,并且设定该用户不需要密码。
配置网络
Ubuntu默认将网络配置成以DHCP的方式获取IP地址。我们的集群中每一台都已经有固定IP地址,这里通过配置/etc/network/interfaces来设定IP地址。比如:
配置hosts文件
严格按照下面的格式来配置/etc/hosts文件,否则将来会出现各种各样的问题: