1. 程式人生 > 實用技巧 >使用mvn構建mapreduce程式

使用mvn構建mapreduce程式

使用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-quickstartmaven-archetype-webapp骨架。maven-archetype-quickstart骨架是用來建立一個Java Project,而maven-archetype-webapp骨架則是用來建立一個JavaWeb Project。