使用软件:VMware6.5 、redhat、hadoop-1.0.4、eclipse、mahout-0.7(主机 为win7);
1.首先使用虚拟机搭建一个伪分布式hadoop集群,在主机的浏览器中输入: 虚拟机名:50030 ,查看集群状态(可以参考配置hosts文件);
2. 下载两个版本的mahout(以1.7为例),如下图所示:
其中mahout-distribution-0.7-src.zip 是等下要拷贝到eclipse工程下面的,mahout-distribution-0.7.zip中的mahout-* .jar要拷贝到集群的hadoop_home/lib下面的;
其中拷贝到eclipse工程下面的文件包括:E:\software\mahout-distribution-0.7-src\mahout-distribution-0.7\core\src\main\java 、E:\software\mahout-distribution-0.7-src\mahout-distribution-0.7\examples\src\main\java、E:\software\mahout-distribution-0.7-src\mahout-distribution-0.7\integration\src\main\java、E:\software\mahout-distribution-0.7-src\mahout-distribution-0.7\math\src\main\java;
3. 在eclipse的java工程中编写一个wordcount的简单测试程序,看是否可以调用虚拟机的hadoop集群,若可以即说明环境基本搭建ok。
由于本来是想分析KMeansDriver这个程序的,但是之前先分析CannopyDriver会好点,所以就先看这个类,最开始的想法是直接下载数据,然后跑出来结果,再根据结果来 分析源码;但是第一次没有跑通,原因是数据不对,数据要经过转换才行;
我使用的数据是 Reuters dataset,根据mahout官网上面的 说明,需要经过下面的转换:
ExtractReuters这个类直接去网上下载即可,放入工程中相应的位置,然后编写一个简单的程序把刚才下载的数据转换,即第二步: