一:将Text转换成Vector序列文件时
在Hadoop中运行编译打包好的jar程序,可能会报下面的错误:
- Exception in thread "main" java.lang.NoClassDefFoundError:
- org/apache/mahout/common/AbstractJob
但是到了小编这里不管怎么尝试,都不能解决,最终放弃了打包成jar运行的念头,就在对源码进行了修改,在eclipse运行了
二:java.lang.Exception: java.lang.ClassCastException: org.apache.hadoop.io.IntWritable cannot be cast to org.apache.hadoop.io.Text
此种错误,是由于map和reduce端函数格式输入输出不一致,导致数据类型不匹配
在次要注意一个特别容易出错的地方:Mapper和Reducer类中的函数必须是map和reduce,名字不能改,因为是继承Mapper类和Reducer类,如果函数名字改变了的话也可能造成以上的错误,或者Reducer端不输出
三:当在命令行里直接用命令转化文件格式时抛出如下错误:
ERROR common.AbstractJob: Unexpected --seqFileDir while processing Job-Specific Options
注:转化命令为:bin/mahout clusterdump --seqFileDir /home/thinkgamer/document/canopy/output/clusters-0-final/ --pointsDir /home/thinkgamer/document/canopy/output/clusteredPoints/ --output /home/thinkgamer/document/canopy/clusteranalyze.txt
上网搜了搜热心的网友给出的解决办法是:将--seqFileDir换成--input即可