zoukankan      html  css  js  c++  java
  • 基于Maven管理的Mapreduce程序下载依赖包到LIB目录

    1、Mapreduce程序需要打包作为作业提交到Hadoop集群环境运行,但是程序中有相关的依赖包,如果没有一起打包,会出现xxxxClass Not Found . 

    2、在pom.xml文件<dependencies>标签同级目录添加<build>标签。

    <!-- 将依赖lib包导出 -->
    	<build>
    		<plugins>
    			<!-- 设置源文件编码方式 -->
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<configuration>
    					<defaultLibBundleDir>lib</defaultLibBundleDir>
    					<source>1.6</source>
    					<target>1.6</target>
    					<encoding>UTF-8</encoding>
    				</configuration>
    			</plugin>
    
    			<!-- 拷贝依赖的jar包到lib目录 -->
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-dependency-plugin</artifactId>
    				<executions>
    					<execution>
    						<id>copy</id>
    						<phase>package</phase>
    						<goals>
    							<goal>copy-dependencies</goal>
    						</goals> 
    						<configuration>
    							<outputDirectory>
    								 lib
    							</outputDirectory>
    						</configuration>
    					</execution>
    				</executions>
    			</plugin>
    			<!-- 解决资源文件的编码问题 -->
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-resources-plugin</artifactId>
    				<version>2.4</version>
    				<configuration>
    					<encoding>UTF-8</encoding>
    				</configuration>
    			</plugin>
    		</plugins> 
    	</build>
    

     3、在工程根目录下新建lib目录,依赖的第三方包都会从Maven仓库中心下载到lib目录中,对于Mapreduce程序来说的一个好处就是:工程打包为jar文件后,提交到Hadoop集群,Hadoop集群环境会自动读取lib目录中的jar文件,加载到作业运行环境中。

  • 相关阅读:
    上下界网络流——概念解析与快速入门(待修改)
    maomao的现在与未来
    exgcd证明和最基础应用
    快速入门Splay
    luogu 2515
    bzoj 1996
    *51nod 1409
    51nod 1412
    51nod 1503
    51nod 1020
  • 原文地址:https://www.cnblogs.com/tmeily/p/4504420.html
Copyright © 2011-2022 走看看