当我运行 Mahout 的 k-Means 时,总是显示这个提示

Posted

技术标签:

【中文标题】当我运行 Mahout 的 k-Means 时,总是显示这个提示【英文标题】:When I run k-Means by Mahout,always show this tip 【发布时间】:2019-08-11 21:27:50 【问题描述】:

代码:

hadoop jar /home/xnz/local/opt/apache-mahout-distribution-0.13.0/mahout-integration-0.13.0.jar \
    org.apache.mahout.clustering.conversion.InputDriver \
    -i /user/root/ -o /user/root/input/seqfile

错误提示:

Exception in thread "main" java.lang.NoClassDefFoundError: 
    org/apache/commons/cli2/OptionException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:278)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:214)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.ClassNotFoundException: 
    org.apache.commons.cli2.OptionException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
    ...4 more
``

【问题讨论】:

为什么不用mahout命令bin/mahout kmeans <args> 【参考方案1】:

从异常中可以清楚地看出。您的 Classpath 中缺少 org.apache.commons.cli2 Jar。

【讨论】:

但当前版本是 CLI 1.4。来自commons.apache.org/proper/commons-cli。谢谢。

以上是关于当我运行 Mahout 的 k-Means 时,总是显示这个提示的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mahout K-means 聚类中维护数据条目 ID

在 hadoop 集群上部署 Mahout

使用 Mahout 向量训练 Spark k-means

Mahout 0.9 K-Means mapReduce 算法分析

Mahout 上的 K-means 返回非独占集群

如何使用存储为 CSV 的矢量数据在 mahout 中执行 k-means 聚类?