【甘道夫】Win7+Eclipse+Maven进行Mahout编程,使其兼容Hadoop2.2.0环境运行,mahouthadoop2.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资源。

运行mahout为何要用hadoop我用eclipse maven做了一个mahout实例也没用到之前建的伪分布式hadoop

mahout 和 hadoop没有啥关系,非得说关系的话,你得弄清二者是干啥的

mahout是一个机器学习算法库,人家是做一些经典的机器学习的算法实现的;
hadoop是一个开源的分布式的数据处理引擎(HadoopV1来说,是MapReduce),人家很多时候是做大规模数据处理的;
所以,Mahout上的一些算法支持用mapreduce的编程模型实现,所以就可以运行在Hadoop平台上;
这样说你就可以明白了吧,二者不是一个层级上的东西,所发挥的作用也是不一样的,而且你运行的实例的确也没有用到Hadoop。。。
 

想用eclipse用maven导入mahout源码看看,结果pomxml报错了

在eclipse中,如果你设置了下载依赖的源代码,当你查看class时,eclipse会自动调用maven下载源代码并在eclipse中打开
你的这个问题似乎是连不上central仓库,检查网络看看
 

相关内容