【问题标题】:Creating and Running runnable jar on hadoop's prompt在 hadoop 的提示下创建和运行可运行的 jar
【发布时间】:2014-04-01 00:42:33
【问题描述】:

我想尝试使用 Hadoop 软件包中提供的示例 WordCount 程序。因此,我在 eclipse 中创建了一个自定义项目,并在我的自定义类中复制了整个 wordcount 代码。我还在项目的构建路径中包含了所有外部 Hadoop jar。最后,尝试创建一个 Runnable JAR:File -> Export -> Java Tab -> Runnable Jar。

但是,我在创建 jar 时遇到错误:Exported with compile warnings: custom_project/src/custom_package/CustomWordCount.java

尽管代码没有错误,但 jar 的创建给我带来了问题。如何解决这个问题?

【问题讨论】:

  • 它说带有警告 - 听起来像是制作了 jar。你检查过了吗?另外,您使用的是哪个版本的 Eclipse,您使用的是哪种方法?你指定主类了吗?
  • 我刚刚创建了一个未使用的导入类。将其导出为可运行的 jar 并从 exploer 运行它。它按预期打开了一个消息框。我认为 Eclipse 制作带有警告的 jar 没有任何问题。不知道您还更改了什么/hadoop 期望什么
  • @tgkprog 正如您所说,尽管出现了上述错误,但仍会创建 jar。但是,当您打开 jar 中的 MANIFEST.MF 文件时, 标签并不指向主类文件。我正在使用 Eclipse Kepler 4.3.1 版
  • 我的。您需要指定运行配置。我有两个主要课程,所以必须选择正确的一个。当我在资源管理器中双击 jar 时,它打开了 Frame 应用程序(测试应用程序)
  • 正是我所做的。在 Run config 中指定相应项目的正确类。但是,对我来说,jar 导出并不成功

标签: java eclipse hadoop jar


【解决方案1】:

Eclipse 不允许我们使用带有警告的代码创建可运行 Jar。

例如,

1) 未使用的导入(包) 2) 不推荐使用的警告等。

因此,请确保在创建 jar 之前处理好所有这些问题。此外,在 hadoop 的示例 WordCount 代码中,创建了一个 Job 类的实例。已弃用。因此,您肯定会在这方面面临问题。因此,要克服这个问题,请删除以下行: 删除 Job 作业 = new Job (conf, "basic word count");

并包含以下行: Job job = Job.getInstance();

【讨论】:

  • 我不认为这是真的,它只是一个蚂蚁任务(在最新的 eclipse 中)
【解决方案2】:

如果您有编译警告,导出不会停止。即使您有错误,其他类文件也会被打包为独立的 ant 脚本

带有已保存生成文件的示例项目Run sample

IDE导出制作的Bld.xml(eclipse)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project Run1 with libraries in sub-folder">
    <!--this file was created by Eclipse Runnable JAR Export Wizard-->
    <!--ANT 1.7 is required                                        -->
    <target name="create_run_jar">
        <jar destfile="D:/U/t/workspace/1/Run1/o/RunApp.jar">
            <manifest>
                <attribute name="Main-Class" value="m.TT"/>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="D:/U/t/workspace/1/Run1/bin"/>
        </jar>
        <delete dir="D:/U/t/workspace/1/Run1/o/RunApp_lib"/>
        <mkdir dir="D:/U/t/workspace/1/Run1/o/RunApp_lib"/>
    </target>
</project>

【讨论】:

  • 我无法下载示例文件。收到服务器错误:找不到文件。
【解决方案3】:

这不再是真的了。我刚刚从 Kepler 将我的项目导出为 Runnable jar 以在 Hadoop 集群上运行,它毫无问题地保存了 jar 文件,但有很多警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 2012-08-07
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    相关资源
    最近更新 更多