【问题标题】:Good way to package all jar files necessary to run Hadoop MapReduce application? [closed]打包运行 Hadoop MapReduce 应用程序所需的所有 jar 文件的好方法? [关闭]
【发布时间】:2014-03-21 12:09:12
【问题描述】:

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

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

谢谢!

【问题讨论】:

标签: java eclipse hadoop jar


【解决方案1】:

Maven 是一个非常好的构建工具 - http://maven.apache.org/ 它可以将你所有的类打包到一个 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>

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

【讨论】:

  • Maven 如何帮助我将包含所有 jars 的应用程序移动到另一台机器上?
  • Maven 帮助打包所有需要的类和库。要使用 maven 复制文件以删除服务器,请检查 stackoverflow.com/questions/909867/…
  • 感谢您的链接。转换为 Maven 项目后,Eclipse 创建了一个 vanila pom.xml。现在我需要在这个 pom.xml 中手动插入所有依赖项,对吗?看起来在这种情况下,Maven 对从 Eclipse 打包应用程序没有多大帮助...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 2017-03-18
  • 2011-03-18
  • 2012-12-25
  • 1970-01-01
  • 2020-08-05
相关资源
最近更新 更多