一、编译的必要性
由于hadoop的生态系统中的各个组建之间的兼容性的问题,因此导致将各个组件组合在一起的时候,会存在一个兼容性的问题,这也是apache hadoop生态系统给开发者带来的一个问题,因此,一些商业公司对这些版本和一些组件进行了包装和打包,将一些必备的组件整合在一起 ,避免了开发者自行去编译或者考虑兼容性的问题。例如:CDH就是一个典型的例子。当然这个商业的版本肯定是需要收费的。本公司为了减少成本,于是乎,就增加了我的工作量,需要将各组件组合在一起,这时候为了兼容性的问题需要对其他的组件进行编译。编译当然是对源码进行编译。这一篇文章介绍如何编译mahout0.9,淡然mahout0.10.0版本编译类似。
二、mahout0.9的编译
1、编译之前肯定是需要源码,因此需要在网上下载源码:
http://mahout.apache.org/ 下载源码mahout-distribution-0.9-src.tar.gz
对源码进行解压,由于我是在windows下编译的,直接通过rar进行解压。若是在;linux上进行编译的话,则:
tar -zxvf mahout-distribution-0.9-src.tar.gz
2、编译
进入解压缩目录,执行命令
mvn clean package -Dhadoop2 -Dhadoop2.version=2.6.0 -DskipTests=true
等待编译结果,一般情况可能由于网络的问题都不会一次性编译成功的,可以根据相应的提示内容继续进行编译。
3、编译好了之后,mahout的各个组件下面都会生成相应的jar包。此时我们需要明白一个问题:到底如何使用mahout呢?
实际上,mahout只是一个机器学习的算法库,在这个库当中是想了相应的机器学习的算法,如:推荐系统(包括基于用户和基于物品的推荐),聚类和分类算法。并且这些算法有些实现了MapReduce,spark从而可以在hadoop平台上运行,在实际的开发过程中,只需要将相应的jar包即可。