在Hadoop上跑mahout程序的问题备忘

2019-03-28 13:37|来源: 网络

找不到类 ClassNotFoundException: org.apache.mahout.math.Vector.

 直接使用eclipse来运行带有第三方(mahout)引用的程序时,这个plugin似乎无法将第三方所需要的包上传到Hadoop中,需要动手修改这个插件,可是代码下载不下来,坑爹啊。这样由于运行的程序中没有包含mahout的包,导致这个方法出错。

  这样可以使用Eclipse的export来输出jar,选择executable jar,输出时选择包含第三方类库,并让他产生ant的build.xml文件。导出后,修改这个build.xml文件,将hadoop的系统包给删了。

打包时无法解开license包,报错 Mkdirs failed to create file

这个错误也是比较奇怪。打包的时候,mahout的jar中包含有license的包,结果在服务器上就是这个无法Unjar了,在build.xml文件中把license去掉吧,类似

 <zipfileset excludes="META-INFlicenselicense/**" src="D:/projects/up/recomm/mahout/xstream-1.3.1.jar"/>

这样就没有这个包了。弄到服务器上,也不出错了。

hadoop命令行是否需要写类名的问题

如果jar的manifest文件已经指定了Main-class,则一定不要再写类名,即hadoop jar XXX.jar 【参数列表】 即可,否则需要 hadoop jar XXX.jar [MainClass] [参数列表] 这样的形式。

相关问答

更多
  • sudo apt-get install python-dev 一般安装系统的时候其实python已经自带了,这步基本可以不用做,OK,我们继续往下走吧,安装python-opencv ,稍后我们需要用到opencv的库,一行指令即可,这也是小编特别喜欢linux的原因: sudo apt-get install python-opencv 完成之后我们开始操作吧,首先同样的我们打开摄像头露个脸呗,不多说,上代码, vim pythonpractice.py 打开vim,copy以下代码即可(友情提示 py ...
  • 现在最新编译好的0.9的不改pom的话就是基于hadoop 1.2.1的,你说的1.0.3是一个hadoop不稳定版本,但本质都是1.x系列的 还有就是1.0.3是一个hadoop不稳定版本,还是换个稳定版本用吧
  • WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.看到警告了没? 你的代码有问题。 所有的map task已完成,证明你的map class没有问题, reduce task failed (reduce task ID: attempt_201312060554_0003_r_000000_0),证明你的redu ...
  • 您需要使用Mahout提供的“作业”JAR文件。 它打包了所有的依赖关系。 你也需要添加你的类。 这就是所有Mahout示例的工作原理。 您不应该将Mahout jar放入Hadoop库中,因为这样会在Hadoop中“安装”太深的程序。 You need to use the "job" JAR file provided by Mahout. It packages up all the dependencies. You need to add your classes to it too. This ...
  • 在2014年4月的HortonWorks DataPlatform(2.1)的最新版本中,支持Mahout 0.9。 我使用mahout 0.9与Hadoop 2.3,我没有任何问题所以我想没有理由不使用它。 In the last release of HortonWorks DataPlatform (2.1) of April 2014 Mahout 0.9 is supported. I used mahout 0.9 with Hadoop 2.3 and I didn't have any pr ...
  • 我想你想要的书是Mahout in Action 。 我是合着者,不介意向你推荐它,因为我认为它直接解决了你的观点:Mahout API,Hadoop,实施推荐器的步骤。 I think the book you want is Mahout in Action. I'm a coauthor and don't mind recommending it to you since I think it directly addresses your points: Mahout APIs, Hadoop, ...
  • 看一下maven文档,特别是关于依赖管理的部分。 如果你想使用Maven,你应该了解基础知识(其中之一是依赖管理)。 基本上,您可以在pom的部分中定义项目的依赖项。 查找所需依赖项的maven central(最常见的在线存储库),或搜索可能包含它们的其他在线存储库。 如果找不到它们,请添加所需的依赖项(考虑合理的组ID,工件ID和版本)并尝试编译。 Maven会抱怨缺少依赖项,并提供一个基本命令将这些依赖项放入本地存储库。 复制这些命令并填写jar文件的相应路径,maven将 ...
  • 您似乎有推荐系统的标准缩放问题。 在您的情况下,您应该将分析分成多个部分。 项目项目相似度计算部分。 用户项目推荐部分使用项目 - 项目相似度值。 关键是,具有大量评级的项目之间的相似性不会发生很大变化。 而这正是代价高昂的部分。 这意味着您只能计算一次它们的相似度,并在很长一段时间后(几周,几个月?)再次进行计算。 您可以评估他们在一周,两周等后的变化情况。然后您只需要计算每天评分较少的项目的项目 - 项目相似度 - 如果他们当然有新的评级! 评价太少是推荐引擎领域的问题。 我现在不会这样做。 因此,当您 ...
  • 是的,但这与Mahout没什么关系。 您可以通过选择MongoDB位置的方式指定输入和输出URL。 其余的是Hadoop-Mongo集成和设置问题。 Yes, but it is nothing directly to do with Mahout. You specify your input and output URLs in a way that selects your MongoDB locations. The rest is a matter of Hadoop-Mongo integrat ...
  • 你看过源代码了吗? 这些算法实现为Map / Reduce作业(不是全部,而是大部分),这正是这个陈述的原因。 Did you look at the source code? The algorithms are implemented as Map/Reduce jobs (not all, but much of it), which is exactly why this statement is made.