1 下载
在http://archive.apache.org/dist/mahout下载相应版本的mahout 版本,获取官网查看http://mahout.apache.org 相关的信息
aaarticlea/png;base64,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" alt="" />
下载后解压,
tar -zxvf mahout-distribution-0.9.tar.gz
配置环境变量
export MAHOUT_HOME=/home/sms/mahout-distribution-0.9
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/bin:$PATH
2 启动hadoop运行测试
下载测试数据 http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data
创建测试目录 testdata,并把数据导入到这个tastdata目录中(这里的目录的名字只能是testdata) hadoop fs -mkdir testdata hadoop fs -put synthetic_control.data testdata 命令测试 hadoop jar /home/sms/mahout-distribution-0.9/mahout-examples-0.9-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job 命令查看 hadoop fs -ls output
运行结果在 hdfs 上 的 output 的文件夹中,结果是二进制文件,需要转化。
例如转化 output/data/part-m-
命令查看 hadoop jar /home/sms/mahout-distribution-0.9/mahout-examples-0.9-job.jar org.apache.mahout.utils.vectors.VectorDumper -i output/data/part-m- 本地模式 java -cp /home/sms/mahout-distribution-0.9/mahout-examples-0.9-job.jar org.apache.mahout.utils.vectors.VectorDumper -i /home/sms/output/data/part-m-
其它意见
一.文本文件向量化
Mahout已经提供了工具类,它基于 Lucene 给出了对文本信息进行分析,然后创建文本向量。mahout提供下面两个命令来将文本转成向量形式(转化成向量后可以聚类): mahout seqdirectory:将文本文件转成SequenceFile(序列)文件,SequenceFile文件是一种二制制存储的key-value键值对,对应的源文件是org.apache.mahout.text.SequenceFilesFromDirectory.java
mahout seq2sparse:将SequenceFile(序列)转成向量文件,对应的源文件是org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles.java 命令: mahout seqdirectory -i /user/hadoop/file1 -o /user/hadoop/file2 查看转化结果: mahout seqdumper:将SequenceFile文件转成文本形式,对应的源文件是org.apache.mahout.utils.SequenceFileDumper.java
mahout vectordump:将向量文件转成可读的文本形式,对应的源文件是org.apache.mahout.utils.vectors.VectorDumper.java
mahout clusterdump:分析最后聚类的输出结果,对应的源文件是org.apache.mahout.utils.clustering.ClusterDumper.java 命令: mahout vectordump -i /user/hadoop/file2 -o /user/hadoop/file3
具体每种命令如何用及参数如何选择,在命令行后面加-h或-help可以查看 二.数值文件向量化
三种数值型向量文件: DenseVector:浮点型数组,存储所有向量,适用于存储密集型向量;
RandomAccessSparseVector:基于浮点数的HashMap实现,key:int,value:double,只存储向量中不为空的值,并提供随机访问。
SequentialAccessVector:只存储向量中不为空的值,只提供顺序访问。 命令:mahout org.apache.mahout.clustering.conversion.InputDriver -i inputfile -o outputfile
文本文件向量化
aaarticlea/png;base64,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SE+rpevtSSPivSawn+oAAAAAmEBEq22nRJxnaUcwH45dK5lxDcYjVxuHjgAAAODsvFCrZUcHPFVPS41V76ePU2m1224DcTUAAADYjCGtlkWTklfFlVzjX/cMVOuH+Xk/P6XXnN+tmhtK7fb6+FZa7fb6O1oNAAAAtmFAqznS6H4E4+NEwbu0McvfpVoq2dJTd1Idlh3aZp9VaOds/jE+KzZY74HePLqg1QAAAGAjBrSaf3y9fVahWf7njfAsumaec71+4B2unZ55XRzCW9l+CvuIsFv1J33vAgAAADZm9Hm1x2bk48P2udJl+VyrfX1er9eLKcn6590XKXPW4/3TLVjlOPf0uOribG/vPdAr+eAAAABgC558tyDRSaEcIGv5uw5arh+PpCePR91MrebF1Yq/Px4i+yhoaqlElrl5ahpabdngXH4AAACAAa02K9e4my/Yy+nr5+7s5Gzeag/06+teZZHODgAAAGASA1ptXq5x93g1L6dvYcz8e62YNtNqjjMAAAAAs3jtWbgBdrS32NwDBQAAANiAneeY2iLn95APr2sCAAAAODN7zN1O4iYAAACAG3vUagAAAABw40er/ffff2g1AAAAgL2BVgMAAADYLx9//vz577//0GoAAAAAOwStBgAAALBf0GoAAAAA++X/3kbHU7Xf9AYAAAAASUVORK5CYII=" alt="" />
mahout 可以再本地模式运行,只需在环境变量加入下面的语句即可 export MAHOUT_LOCAL=true 则所用的测试命令都可在本地目录进行,无需上传到hdfs上。本地模式下,下面的问题也不存在。
3 问题汇集
[sms@gc64 ~]$ mahout
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop, using HADOOP_HOME=/home/sms/hadoop
HADOOP_CONF_DIR=/home/sms/hadoop/etc/hadoop
MAHOUT-JOB: /home/sms/mahout-distribution-0.6/mahout-examples-0.6-job.jar
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.util.ProgramDriver.driver([Ljava/lang/String;)V
at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:)
at java.lang.reflect.Method.invoke(Method.java:)
at org.apache.hadoop.util.RunJar.main(RunJar.java:) 可能的解决方案:
mahout0.9的源码,支持hadoop2,需要自行使用mvn编译。mvn编译使用命令: mvn clean install -Dhadoop2 -Dhadoop..version=2.2. -DskipTests
http://download.csdn.net/detail/fansy1990/7165957
还没有答案?目前倾向于hadoop与mahout版本冲突造成的。
4 参考资料
1 mahout安装测试 http://blog.csdn.net/wind520/article/details/38851367