之前一直都是在windows下的Eclipse写hadoop,这次打算在Ubuntu下写一次,采用Maven来创建和管理工程。
Maven是一种挺方便的工程管理插件吧,通过写依赖项属性便可以自动加入需要的各个依赖库文件,也让Hadoop程序能够直接在Console这里运行,不需要导出jar包到命令行中去,方便调试代码啦!
首先记录一下Maven工程的创建
Eclipse本身是内嵌了Maven,如果想使用命令行方式创建工程,强力推荐
http://www.cnblogs.com/yjmyzz/p/3495762.html写得非常详细用心哦。
我记录一下用Eclipse直接创建的过程。
首先是Eclipse的Maven插件,如下图所示,在Windows->Preferences->maven->Installations里边。
Eclipse里边已经有一个Embedded的版本,当然也可以自己添加自己想要的maven版本,选择右边的Add添加即可。
接着便是新建一个Maven项目
catolog我选择的是默认的quickstart
- 关于groupId,可以看做是个包吧,左右图对照便可以看到在src/main/java和src/test/java里边都出现了yjj包。
- 关于artifactId,可以看做是工程名,也会在yjj包里边生成一个同名的包。
- 版本号默认即可,packaging则定义了打包后的jar名,这里应该会生成一个jar.jar包吧,,没命名好啊。
最后生成的项目结构如上图左图所示。
Maven项目有如下通用约定,
- src/main/java用于存放源代码
- src/test/java用于存放单元测试代码
- target则用于存放编译生成的class以及打包后生成的输出文件
看上图似乎多出了个src目录对吧,不需要去管它的,因为src/main/java和src/test/java其实就是在这个src里边的,我们查看下maven-mahout文件夹就可以很清楚的知道了。
这个工程里边的main是怎样运行的呢?
如果直接右击一个含main函数的类选择run as-> java application会出现找不到这个类的情况。
那该怎么做呢?
右击项目名,然后选择
然后跳出如下界面
在下面选择需要运行的类,这里我选择工程自动生成的APP类。选完之后,以后再想运行这个类,便可以在Run按钮里边选择这个类来运行啦。
控制台成功输出啦!
WordCount程序的编写
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>yjj</groupId>
<artifactId>maven-mahout</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>maven-mahout</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<mahout.version>0.9</mahout.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
</project>
添加了hadoop-core,版本选用1.2.1版本。
Consol