首页 > 代码库 > 【甘道夫】Win7+Eclipse+Maven进行Mahout编程,使其兼容Hadoop2.2.0环境运行
【甘道夫】Win7+Eclipse+Maven进行Mahout编程,使其兼容Hadoop2.2.0环境运行
引言
之前成功在服务器上为Mahout0.9打patch,使其支持Hadoop2.2.0。
今天的需求是:在Win7+Eclipse+Maven环境下开发Mahout程序,打jar包放到集群上,使其在Hadoop2.2.0下正常运行。
过程
步骤一:Eclipse下创建Maven工程
pom.xml:
1.引入mahout依赖
<dependencies>
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-core</artifactId>
<version>0.9</version>
</dependency> </dependencies>
2.将依赖打进jar包的插件
<build>
<plugins> <plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>cn.fulong.bigdata.ItemCFHadoop</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin> </plugins>
</build> 步骤二:关键--将集群上打完patch,编译好的mahout-core-0.9.jar和mahout-math-0.9.jar覆盖windows下maven仓库的对应文件!
我尝试过将打过patch的pom文件拷贝到windows下,然后在windows环境下编译mahout0.9源码,但是行不通,各种报错。
由于mahout-core所依赖的mahout相关jar包只有两个,mahout-core-0.9.jar和mahout-math-0.9.jar,所以我们只需将集群上支持Hadoop2.2.0的这两个jar包覆盖到本地即可。
如果不执行该步骤,工程打jar包拷贝到集群后将报hadoop兼容性异常。
步骤三:打包,在windows环境下工程根目录下执行命令:mvn assembly:assembly
生成的jar包在工程根目录/target/下,名称类似 xxxxx-jar-with-dependencies.jar
步骤四:将jar包拷贝到集群中执行
注意:使用hadoop jar执行,而不是用java jar执行!使用hadoop jar执行才能顺利找到相关的hadoop资源。
【甘道夫】Win7+Eclipse+Maven进行Mahout编程,使其兼容Hadoop2.2.0环境运行
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。