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

  • 相关阅读:
    NFS
    Linux ISO镜像挂载
    Python3.6 提示 ModuleNotFoundError: No module named '_ssl' 模块问题
    mysql 5.7 ERROR 1054(42S22) Unknown column 'password' in ‘field list’ 报错
    Redis + keepalived 高可用行配置检测脚本
    Linux 文件大小查找排序
    查看 Centos 7 的MAC 地址
    Discuz 论坛 (LAMP环境)
    SVN
    systemctl
  • 原文地址:https://www.cnblogs.com/tmeily/p/4504420.html
Copyright © 2020-2023  润新知