目标:搭建包含多台masters和多台slaves的hadoop分布式集群
一、安装系统
1 安装virtualbox
2 安装centos(可参考百度文库:centOS6.3搭建LAMP平台)
由于就一台主机(内存4G,双核CPU),因此只安装4个虚拟机系统,内存分配512/512/256/256,也可安装好一个,然后用virtualbox复制功能(此时需要修改网络设置eth0,同时由于处同一内网机器名也应修改)
二、下载hadoop和jdk
这里用stable版的hadoop1.2.1和jdk1.7.0_25
hadoop官网:http://hadoop.apache.org/
hadoop release资源:http://hadoop.apache.org/releases.html
hadoop1.2.1:http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html
jdk1.7.0:http://download.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-i586.rpm
三、集群配置
1 机器部署
master1: NameNode: 10.2.2.100
master2: SecondaryNameNode/JobTracker: 10.2.2.115
slave1: DataNode&TaskTracker: 10.2.2.108
slave2: DataNode&TaskTracker: 10.2.2.110
2 网络配置
(1) 设置静态IP地址,由于之前默认地址是动态获取(dhcp方式),导致NameNode web管理页面上部分链接地址解析成了公网地址,使页面无法访问,
示例:
(2) 设置hosts,1,在master1/2,slave1/2设置hosts,如下:
sudo vi /etc/hosts
...
10.2.2.100 master1.***.*** // 和master1的/etc/sysconfig/network文件中的HOSTNAME值一致
10.2.2.115 master2.***.*** // 与master2的HOSTNAME一致
10.2.2.108 slave1.***.***
10.2.2.110 slave2.***.***
同样,需要在浏览NameNode web管理页面的主机设置上面4台机器的地址/域名映射,添加内容和上面一样
例如,winxp的hosts文件在c:\windows\system32\drivers\etc,可用记事本打开编辑
(3) 防火墙设置
hadoop会打开很多服务端口,因此如果查看hadoop日志logs遇到" No route to host "之类的错误,如果网络正确,可能是防火墙阻挡了
虽然可以在/etc/sysconfig/iptables里加端口,但很多也很麻烦,hadoop有很多默认端口需要查看官方资料,为方便以及避免网络问题,这里直接关闭所有机器的防火墙:
在masters和slaves输入如下命令:
sudo /etc/init.d/iptables stop
3 ssh免密码登录配置
[why...] [updating...]
ssh-keygen -t rsa
再按三次回车
相互复制id_rsa.pub到~/.ssh/目录,重命名,然后cat到authorized_keys,chmod 644 authorized_keys (600权限貌似也可以)
测试ssh 免密码登录