您的位置:首页 > 编程语言 > Java开发

【甘道夫】Win7+Eclipse+Maven进行Mahout编程,使其兼容Hadoop2.2.0环境运行

2014-09-11 17:54 288 查看
引言

之前成功在服务器上为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资源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: