淘了一台二手Dell C1100玩:
CPU: L5639*2
MEM: 4GB*18
HDD: SATA 1G
简单记录一下部署过程:
1. 为了给OpenStack打好基础,选择安装rhel 6.4
下载完[红帽企业Linux.6.4.服务器版].rhel-server-6.4-x86_64-dvd.iso,用ultralISO刻录到U盘上安装,由于是空机器,一路默认就好
2. 启动系统,发现不能自动配置DNS和IP,手动配上(这里有个坑,下面会提到)
3. 由于没有licence,只能配置源centos的源,不过网上很多源都失效了,最后还是靠胖大人搞定
[base]
name=CentOS-5 - Base
#baseurl=http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS
baseurl=http://ftp.sjtu.edu.cn/centos/6.4/os/x86_64/
gpgcheck=0
enabled=1
4. 到hadoop官方站点上下载合适的版本,这里选择最新稳定版本1.2.1:
http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/(给的默认镜像太慢,还是选CNNIC比较快)
rpm或者tar.gz都很方便,建议新手下tar.gz,解压后直接按照官方指南就能配置好使用:
http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html(单机、伪分布式)
http://hadoop.apache.org/docs/r1.2.1/cluster_setup.html (集群)
三种方式的配置也可以参考hadoop权威指南的附录A,有比较详细的介绍
5. 以前用虚拟机跑过分布式环境,以为单机和伪分布式也很简单,结果job卡在reduce上迟迟完成不了,察看job的日志提示reduce.Fetcher找不到map out的host:web30.bbn.com.cn,上网一查这个北京联通的一个地址,当本地DNS找不到某个host的时候就会向上去请求更高层DNS,最后到联通也不认识了就给这么个host,真是坑爹==!由于DNS是手动配的,结果就载到这坑里了。至于未知的host是哪来,还不得而知,据说和360等扫描局域网有关...解决方案有两个:
打开防火墙:service iptables start
在/etc/hosts里给web30.bbn.com.cn配上本机ip,再跑job顺利完成。
6. mahout也装最新版本:http://mirrors.cnnic.cn/apache/mahout/0.8/
下载tar.gz,本地解压
测试比较简单,完全参考官方指南即可:https://cwiki.apache.org/confluence/display/MAHOUT/Quickstart
需要注意的是如果没配好HADOOP_HOME,运行examples会自动选择单机模式,此时会把数据也下载到本地,如果再要使用hadoop模式,需要把数据手动从本地上传导HDFS才可跑起example job
这里值得注意的是,单机模式和分布式模式下跑出来的结果并不一样,以分类为例:
单机结果:
Statistics
-------------------------------------------------------
Kappa 0.8728
Accuracy 90.1657%
Reliability 85.6396%
Reliability (standard deviation) 0.2159
分布式结果:
Statistics
-------------------------------------------------------
Kappa 0.8686
Accuracy 89.6502%
Reliability 85.1966%
Reliability (standard deviation) 0.2283
这可能是分布式算法为了能实现分布式存储和计算而做了一定的效果取舍,具体原因有待进一步研究