使用mvn構建mapreduce程式
阿新 • • 發佈:2020-12-24
使用mvn構建mapreduce程式
構建專案
mvn archetype:generate -DgroupId=Mapreduce -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
動建立src/main/resources(存放log4j.properties等)
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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>com.hadoop</groupId> <artifactId>data</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>3.2.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> </project>
自動下載jar包
首先把所有jar包地址寫入pom檔案,找到專案有pom檔案的那個目錄,在這個目錄開啟命令列,輸入
call mvn -f pom.xml dependency:copy-dependencies
程式就會立即下載該Jar包到本地Maven倉
編譯-測試-打包-安裝
mvn clean compile
mvn clean test
mvn clean package
mvn clean install
執行jar包
在服務端執行jar包
hadoop jar data.jar Mapreduce.wordcount #data.jar 是jar包 #Mapreduce.wordcount 是程式的主函式
Maven建立專案的命令說明
mvn archetype:create或者mvn archetype:generate 固定寫法
-DgroupId 組織標識(包名)
-DartifactId 專案名稱
-DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,建立一個Java Project;maven-archetype-webapp,建立一個Web Project
-DinteractiveMode 是否使用互動模式
archetype是mvn內建的一個外掛,create任務可以建立一個java專案骨架,DgroupId是軟體包的名稱,DartifactId是專案名,DarchetypeArtifactId是可用的mvn專案骨架,目前可以使用的骨架有:
- maven-archetype-archetype
- maven-archetype-j2ee-simple
- maven-archetype-mojo
- maven-archetype-portlet
- maven-archetype-profiles (currently under development)
- maven-archetype-quickstart
- maven-archetype-simple (currently under development)
- maven-archetype-site
- maven-archetype-site-simple
- maven-archetype-webapp
每一個骨架都會建相應的目錄結構和一些通用檔案,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用來建立一個Java Project,而maven-archetype-webapp骨架則是用來建立一個JavaWeb Project。