用maven创建一个项目,基本的MapReduce,我暂时觉得只用到了两个jar包,所以把依赖写到pom.xml中
123456789101112<dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-core</artifactId><version>1.2.1</version></dependency><dependency><groupId>commons-cli</groupId><artifactId>commons-cli</artifactId><version>1.4</version></dependency></dependencies>关于具体的依赖包的信息查询可以参考maven2库
比如写了一个WordCount的代码,写完之后发现ide里各种报错,说明包没导入,添加依赖包(File->ProjectStructure->libraries,可以自己下载好上面的两个包(commons-cli-1.4和org.apache.hadoop:hadoop-core:1.2.0)导入,也可以用里面的maven自己帮你下载好导入,查找对应包只要把名字输入就行)。
将这个maven项目打成jar包,就是在主目录下mvn compile 然后mvn package,那么打包出来的jar包在target目录下,就是可以直接使用的了,你要用的对应的类就是你src/main/java 之后的路径,如果你的路径是src/main/java/test/WordCount.java ,那么使用的时候就要hadoop jar name.jar test.WordCount.java /input /output
上述的过程是打包MapReduce程序在hadoop下运行的方法,但是代码出错调试很不方便,你运行的代码本地就能跑,只不过不是分布式环境,但结果正确在拿到hadoop上运行方便很多。
主要配置就是在工具栏运行按钮旁边的小框中点出Edit Configuration,然后点进Application,设置参数,就是输入目录和输出目录(如果你Main函数是写死的输入输出目录就不用参数),将你要运行的类Main Class作为主类,然后确定工作目录没问题即可,你创建的输入输出目录也都是相对于工作目录而言的 。