参考的文章:
http://blog.csdn.net/fansy1990/article/category/1313502
错误1:
File does not exist: /user/jxxy/input/dttest/kddTrain.txt
上传的目的地要写对,我后面改成了
先在HDFS上建立文件夹
hadoop fs -mkdir -p /user/jxxy/dttest/input
haddop fs -mkdir -p /user/jxxy/out/forest/info
然后:
hadoop fs -put kddTrain.txt /user/jxxy/dttest/input (这个要事先建立好)
hadoop fs -put kddTest.txt /user/jxxy/dttest/input
然后:(很关键, 不要写错地方,少一个字母都会报错)
hadoop jar mahout-examples-0.11.1-job.jar org.apache.mahout.classifier.df.tools.Describe -p dttest/input/kddTrain.txt -f out/forest/info/kdd1.info -d N 3 C 2 N C 4 N C 8 N 2 C 19 N L
错误2:
Exception in thread "main" java.lang.IllegalArugementException:Wrong number of attributes in the string: 42. Must be: 43
我之前按照的是 :kdd1.info -d N 3 C 2 N C 4 N C 8 N 2 C 19 N L
N
注意这个红色的N 在文章里作者是因为数据中多了1列 ,才加了1个N ,我删掉这个N之后就出了结果
结果:
15/11/24 13:49:37 INFO tools.Describe: Generating the descriptor...
15/11/24 13:49:40 INFO tools.Describe: generating the dataset...
15/11/24 13:49:42 INFO tools.Describe: storing the dataset description
错误3:
我的mahout 0.11.1里面没有BuildForest这个class 查了查看了别人的实在mahout 0.7下面做的实验,因此我也改成了mahout 0.7 错误小时
错误4:
在进行mapreduce 的时候 发现内存不足
Error:Requested array size exceeds VM limit 我发现无论吧MAX.SPILT改成多少都是fail
将-t 改成10也不行 估计算法和计算机内存都有问题,明天继续查看如何解决
11/24
11/27:
在休息了2天后 今天用学校这2台配置较差的跑出来了一点点结果
首先说下个人分析的原因吧:
1.数据集过大(对于我用的电脑来说)
2.集群只有2台电脑配置不够。
3.算法中的MAX.SPLIT.SIZE和生成树太大
总的来说就是------>电脑不行。。。。
不过比之前的一点结构都没有还是出了点东西的
在mahout目录下输入:
hadoop jar mahout-examples-0.7-job.jar org.apache.mahout.classifier.df.mapreduce.BuildForest -Dmapred.max.split.size=256 -d dttest/input/kddTest.txt -ds out/forest/info/kdd1.info -sl 2 -p -t 2 --output out/forest1
然后出了点结果。。。。成功了5个,剩下的都因为VM限制而失败。。。
总结下,也许把老师办公室剩下的几台电脑拿来当集群就可以出结果了。。。。然后算法也需要好好研究。。。。