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

Java 打包运行Hadoop MapReduce应用程序所需的所有jar文件的好方法?,java,eclipse,hadoop,jar,Java,Eclipse,Hadoop,Jar,我使用Eclipse构建了一个MapReduce应用程序。它还使用HCatalog和hivejar文件。该应用程序是在本地Hadoop安装的Eclipse项目中开发的。所有必需的jar文件都只是从本地节点上安装Hadoop和Hive的目录中包含在Eclipse项目中 现在我需要运行这个应用程序。在其他地方安装的多节点Hadoop上。请建议将所有必要的罐子打包到一个应用程序中的最佳方法。或者我应该在计划运行应用程序的节点上设置类路径?在Eclipse中构建一个自给自足的jar会很好 谢谢 Mave

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

现在我需要运行这个应用程序。在其他地方安装的多节点Hadoop上。请建议将所有必要的罐子打包到一个应用程序中的最佳方法。或者我应该在计划运行应用程序的节点上设置类路径?在Eclipse中构建一个自给自足的jar会很好


谢谢

Maven是一个非常好的构建工具- 它可以将所有类打包到一个jar中,还可以在其中添加所有需要的jar库

通过右键单击项目并选择菜单“配置”>“转换为Maven项目”,可以将现有项目转换为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>

org.apache.hadoop

Maven如何帮助我将带有所有JAR的应用程序移动到另一台机器?Maven帮助打包所有需要的类和库。要使用maven复制文件以删除服务器,请检查此链接,谢谢链接。转换到Maven项目后,Eclipse创建了一个vanila pom.xml。现在我需要在pom.xml中手动插入所有依赖项,对吗?在本例中,Maven似乎对从Eclipse打包应用程序没有多大帮助……q。由于某种原因被搁置,所以我将把它作为一个评论。有几种方法可以做到这一点-看看这里