建立学习用小型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。

系统安装完毕进行Hadoop的简单配置:

1. hadoop-env.sh配置JAVA_HOME

2. masters文件指定备用namenode,slaves文件指定tasktracker

3. core-site.xml设置dfs.default.name为hdfs://namenode

4. hdfs-site.xml设置dfs.name.dir和dfs.data.dir目录

5. mapred-site.xml设置mapred.job.tracker为jobtracker机器名/ip,还有mapred.local.dir和mapred.system.dir目录

设置完毕再namenode上start-dfs.sh,在jobtracker上start-mapred.sh,遇到以下问题:datanode连不上namenode,org.apache.hadoop.ipc.Client: Retrying connect to server: namenode:8020。解决办法如下:

1. 关闭Ubuntu防火墙,sudo ufw disable,如果要再开启防火墙,注意允许22端口,ufw allow 22/tcp,参考/etc/ufw/ufw.conf

2. 在namenode上netstat -na | grep 8020,发现只绑定了127.0.0.1,在/etc/hosts里注释本地主机名和127.0.0.1的绑定,只绑定静态ip即可。

如果没进行上述设置,则dfshealth.jsp显示DFS Used 100%,而且Live Nodes为0。试图运行mapreduce也会出现File * could only be replicated to 0 nodes, instead of 1错误。

在这里我还是要推荐下我自己建的大数据学习交流qq裙:522189307 , 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴。上述资料加群可以领取

猜你喜欢

转载自blog.csdn.net/YUSDook/article/details/90215623
今日推荐