0

我现在正在学习 Mahout in Action 并写信询问如何构建和执行书中的示例。我可以使用 eclipse 找到说明,但我的环境不包含 UI。所以我把第一个例子(RecommenderIntro)复制到了RecommenderIntro.java中,通过javac编译。

我收到一个错误,因为未导入包。所以我正在寻找:

  1. 导入缺失包的方法。

  2. 我想,即使编译成功,也会生成.class文件,我该如何执行呢?通过“java RecommenderIntro”?我可以通过执行 mahout 示例sudo -u hdfs hadoop jar mahout-examples-0.7-cdh4.2.0-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job,如何为自己的示例做类似的事情?

  3. 我所有的数据都保存在 HBase 表中,但是在书中(甚至谷歌)中,我找不到将它与 HBase 集成的方法,有什么建议吗?

4

1 回答 1

2

q1 和 q2,你需要一个像 maven 这样的 java 构建工具。您使用以下命令构建 hadoop-jar:'mvn clean install' 这将在 target/mia-job.jar 中创建您的 hadoop 作业然后您使用以下命令执行您的作业:hadoop jar target/mia-job.jar RecommenderIntro inputDirIgnored outputDirIgnored(RecommenderIntro 忽略参数,但是 hadoop 强制你指定至少 2 个参数,通常是输入和输出目录)

q3:你不能开箱即用。选项 1:将您的 hbase 数据导出到文本文件“intro.csv”,其内容如下:“%userId%, %ItemId%, %score%”,如书中所述。因为这是 RecommenderIntro 正在寻找的文件。选项2:修改示例代码以从hbase中读取数据...

ps1。对于开发这样的应用程序,我真的建议使用 IDE。因为它允许您使用代码完成、执行、构建等。一个简单的入门方法是使用 Cloudera 或 HortonWorks 之类的 hadoop 下载虚拟映像,然后安装 Eclipse 之类的 IDE。您还可以配置这些图像以使用您的 hadoop 集群,但对于小型数据集,您不需要这样做。ps2。RecommenderIntro 代码不是分布式实现,因此无法在大型数据集上运行。它也在本地而不是在 hadoop 集群上运行。

于 2013-04-12T21:22:17.430 回答