赞
踩
最近,根据公司的需求,搭建了一个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 |
对于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前,我们需要进行一些必要的系统配置。在以下所有配置中,如果没有特殊说明,就需要在集群的所有节点上进行配置。完成以下所有配置后,重启所有节点,保证所有的配置都已经生效。
sudo apt-get update
sudo apt-get -y --force-yes install ssh
sudo apt-get update
sudo apt-get -y --force-yes install ntp
#创建新用户leon
sudo useradd -b /home -d /home/leon -m -s /bin/bash leon
sudo passwd leon
#配置新创建的用户可以无需输入密码直接sudo获得root权限
cd
echo "leon ALL=(ALL:ALL) NOPASSWD: ALL" > nopasswd
sudo chown root.root nopasswd
sudo mv nopasswd /etc/sudoers.d/nopasswd
#至此,用户leon可以使用sudo命令自己提升至root权限名并且不需要输入密码
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.167.192.231
netmask 255.255.252.0
gateway 10.167.192.1
auto eth1
iface eth1 inet static
address 192.168.1.10
netmask 255.255.255.0
#这个是通过SoftEtner虚拟出来的网卡,用于接入Internet
auto vpn_internet
iface vpn_internet inet dhcp
127.0.0.1 localhost.bigdata.net localhost
10.167.192.224 tehdname1.bigdata.net tehdname1
10.167.192.225 tehdname2.bigdata.net tehdname2
10.167.192.226 tehdresmgr.bigdata.net tehdresmgr
10.167.192.227 tehdapp1.bigdata.net tehdapp1
10.167.192.228 tehdapp2.bigdata.net tehdapp2
10.167.192.229 tehdapp3.bigdata.net tehdapp3
10.167.192.230 tehdapp4.bigdata.net tehdapp4
10.167.192.231 tehdmonitor.bigdata.net tehdmonitor
10.167.194.82 tehddev1.bigdata.net tehddev1
tehdname1.bigdata.net
vm.swappiness=0 #注意等号前后都没有空格
在安装CDH的过程中,需要访问Internet用于下载必要的软件或安装包。其中,在运行Cloudera Manager的节点上需要下载安装JDK, Couldera Manager Server, DB, CDH包等等,其他所有节点都需要下载JDK, Cloudera Manager Agent等。
为了节省在安装过程中占用的网络带宽资源,节省下载安装包所消耗的时间,并考虑到以后可能存在的推到重装的可能性,建议先挑选一台主机,将该主机作为集群中唯一的节点来进行安装,当所有需要的安装包都下载完成后,即可中断安装过程,然后把这些包都备份起来。备份方法可参考如下命令:
mkdir ~/backup
mkdir ~/backup/packages
cp /var/cache/apt/archives/*.deb ~/backup/packages
mkdir ~/backup/cdh
cp /opt/cloudera/parcel-repo/* ~/backup/cdh
为方便截图,且不影响现有的集群,以下安装过程在虚拟机上完成。
1.更新源
在所有节点上执行以下命令:
cd /etc/apt/sources.list.d
sudo wget http://archive.cloudera.com/cm5/ubuntu/trusty/amd64/cm/cloudera.list
sudo apt-get update
2.将安装包复制到所有节点上去
假定在前面的步骤中,安装包都备份在tehdmonitor主机上,在所有节点上(包括tehdmonitor)上执行以下命令:
sudo scp leon@tehdmonitor:/home/leon/backup/packages/*.deb /var/cache/apr/archives
3.在Cloudera Manager节点上安装JDK, cloudera server, DB
在Cloudera Manager节点上执行以下命令:
sudo apt-get -y --force-yes install ssh oracle-j2sdk1.7
sudo apt-get -y --force-yes install cloudera-manager-daemons cloudera-manager-server
sudo apt-get -y --force-yes install cloudera-manager-server-db-2
4.复制备份的CDH包到Cloudera Manager节点
在Cloudera Manager节点上执行以下命令:
sudo cp /home/leon/backup/cdh/* /opt/cloudera/parcel-repo
5.启动Cloudera Manager节点
在Cloudera Manager节点上执行以下命令:
sudo service cloudera-scm-server-db start
sudo service cloudera-scm-server start
等Cloudera Manager启动完成后,等大约2分钟,我们就可以通过Web UI来配置我们的集群了。
6.打开Cloudera Manager的Console (Web UI),并按提示进行操作
打开Web UI
使用浏览器访问Cloudera Manager节点的7180端口,比如http://tehdmonitor:7180
登陆系统
登陆的用户名和密码都是admin
选择版本
公司很抠门的,选择免费的Express版本就好了,然后点“继续”按钮
看到下面的这个界面,点“继续”按钮
等到搜索结果出来了,把节点全都选中,然后点“继续”按钮
集群CDH包的选择
这里保持默认的就好了,除非你确定还要选择其他的包。然后点“继续”按钮
JDK选项
先选中“安装Oracle JDK”,然后再选中“安装Java无限制强度加密”,然后点“继续”按钮
启用单用户模式
这一页保持默认就好了,点“继续”按钮
提供SSH登陆凭据
这里的“登陆到所有主机,作为”要选择“其他用户”,然后输入前面创建的无密码sudo变为root的用户,然后下面输入密码和确认密码,然后点“继续”按钮,然后耐心等待安装完成。
安装完成后的界面如下,然后点击“继续”按钮
安装选定的Parcel
在这个界面耐心等待“继续”按钮变亮,注意,如果你现在做的是为了备份安装包而进行的单节点临时安装过程,那么到这里就可以停止了,然后进行安装包的备份操作。如果你是在安装一个实际会使用的集群,那么请点击“继续”按钮
检查主机正确性
在这个界面耐心等待主机检查完成,要保证没有一个错误。如果有任何错误,参考前面的配置修改,然后点“重新运行”按钮,如果没有任何问题了,就点“完成”按钮
选择集群服务
在集群服务选择页,选择“自定义服务”,然后选择想要安装的服务。这里说明几点:
分配集群角色
根据自己的需求来分配就好了。尽量不要把所有的角色分配到一个节点上,避免该节点的负担太重。我这里是用虚拟机演示的,所以所有的服务都安装到唯一个这个节点了。
另外,ZooKeeper的节点数应该为3或5,这个是Cloudera的建议值。
角色分配完了,就点“继续”按钮
数据库设置
这里可以使用自定义的数据库或嵌入式的数据库,一定要保证点击“测试连接”能通过,建议自己在对应服务的节点上安装mysql数据库,然后这里选择自定义数据库。测试连接通过后,点“继续”按钮
审核更改
这一页保持默认就可以了,或者根据实际的情况来修改。然后点“继续”按钮
安装服务
接下来就可以坐下来喝杯茶,慢慢等集群安装完成了。我的虚拟器的内存太小,没到装完就会卡死,只能截一个安装一部分的图了。
所有的服务都安装完成后,集群会自己启动。
本文写到这里就结束了,这里附上一张集群正常运行的截图。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。