打包运行Hadoop MapReduce应用程序所需的所有jar文件的好方法?

时间:2014-03-21 12:09:13

标签: java eclipse hadoop jar

使用Eclipse我已经构建了一个MapReduce应用程序。它还使用HCatalog和Hive jar文件。这个应用程序是在本地Hadoop安装的Eclipse项目中开发的。所有必要的jar文件都只是从Hadoop和Hive安装在本地节点上的目录中包含在Eclipse项目中。

现在我需要运行这个应用程序。在其他地方安装的多节点Hadoop上。请告知tp在单个应用程序中包装所有必需的罐子的最佳方式。或者我应该在我计划运行应用程序的节点上设置CLASSPATH?在Eclipse中构建一个自给自足的jar会很好。

谢谢!

1 个答案:

答案 0 :(得分:1)

Maven是一个非常好的构建工具 - http://maven.apache.org/ 它可以将所有类打包在jar中,也可以在其中添加所有需要的jar库。

您可以将现有项目转换为Maven,方法是右键单击项目并选择菜单Configure>转换为maven项目。然后在pom.xml中添加所需的依赖项。

示例依赖项看起来像。

   <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.0.0-cdh4.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-auth</artifactId>
            <version>2.0.0-cdh4.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.0.0-cdh4.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>2.0.0-mr1-cdh4.0.1</version>
        </dependency>

另见http://hadoopi.wordpress.com/2013/05/25/setup-maven-project-for-hadoop-in-5mn/