建立学习用小型Hadoop集群
最近在学习Hadoop,运行了单机模式和伪分布模式后也想尝试一下真正的分布式。于是找了几台闲置的PC准备做个小集群,这些机器都是淘汰下来的Dell optiplex 745/755。
1. 安装基本系统
找一台机器安装Ubuntu 11.04,内核选server,然后装sun-java-6-jdk,建立hadoop用户,下载hadoop设置环境变量,细节请参考官方文档。一台机器装好以后用clonezilla做个系统镜像,其他机器可以直接用clonezilla通过ssh reimage。
总结几个问题:
1.1 ubuntu 11.04启动以后显示器休眠,需要按ctrl+alt+F1激活显示,开始还以为是显卡的问题,10.10好像没这个问题。
1.2 ubuntu 的partner 源出了问题,sun-java-6的路径找不到,可以直接到http://archive.canonical.com/pool/partner/s/sun-java6/下载sun-java6-bin_6.26-1natty1_amd64.deb,sun-java6-jre_6.26-1natty1_all.deb,sun-java6-jdk_6.26-1natty1_amd64.deb,然后用dpkg -i 安装。
1.3 放置clonezilla镜像的机器要允许root登录,否则显示权限错误,sudo passwd root,结束后关闭sudo passwd -l root。
1.4 镜像后的机器网络有问题,ifconfig显示ip地址是127.0.0.1,ifup eth0显示错误SIOCSIFADDR: No such device。google发现是/etc/udev/rules.d/70-persistent-net.rules记录了原来机器的MAC地址。注释其中的MAC地址记录并重启后可以正确从dhcp获得ip。
1.5 dhcp服务器不能记录linux机器的ip地址和主机名,在/etc/dhcp/dhclient.conf添加 send host-name "your-host-name"也没有用,可能是dhcp服务器不支持。试了下dhcpcd也不行。最后决定用static ip,希望IT不要来找我的麻烦。
1.6 把静态ip设置到几台机器的hosts文件,sudo vi scp://root@hostname//etc/hosts,不sudo的话yank后好像不能p,而且远程机器上要打开root才能保存。
PS,hadoop用openjdk也运行的很好,不用费尽找Sun的了,http://wiki.apache.org/hadoop/HadoopJavaVersions。