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文件,加载到作业运行环境中。

  • 相关阅读:
    链表 | 递归删除不带头结点链表所有x元素
    A1016 | 磨人的大模拟
    Ubuntu 下安装 Qt Designer
    shell札记
    A1102 | 反转二叉树
    顺序表 | 二分查找:两个数组合并后的中位数
    A1113 | Integer Set Partition (25)
    A1128 | 逻辑想象能力、简洁高效美观的代码、memset的使用情景
    05.字符串
    04.序列的应用
  • 原文地址:https://www.cnblogs.com/tmeily/p/4504420.html
Copyright © 2011-2022 走看看