hadoop 成功运行mahout 的example之后,尝试运行mahout的kmeans算法。
过程中出现问题。
首先,依旧是classNotFound错误。
此错误,可以使用前面(一)中方法解决,将mahout的lib文件夹下的 .jar 文件 复制到hadoop的common 文件夹中。
另外想到一种应该可以的方法,就是将mahout的lib等相关路径放加入到PATH变量中,不过个人测试貌似不可以,这个还要进一步的思考或者大神解答。
其次,mahout中的算法的输入数据是要经过处理的。
要将mahout的处理数据进行序列化。
public class Text2VectorWritable extends AbstractJob{
public static void main(String[] args) throws Exception{
ToolRunner.run(new Configuration(), new Text2VectorWritable(),args);
}
@Override
public int run(String[] arg0) throws Exception{
addInputOption();
addOutputOption();
if (parseArguments(arg0) == null) {
return -1;
}
Path input=getInputPath();
Path output=getOutputPath();
Configuration conf=getConf();
//set job information
Job job=new Job(conf,"text2vectorwritablecopy with input"+input.getName());
job.setOutputFormatClass(Seq