"Not A Valid Jar" 尝试 运行 Map Reduce 作业时

"Not A Valid Jar" When trying to run Map Reduce Job

我正在尝试通过从 eclipse 构建一个 jar 来 运行 我的 MapReduce 作业,但是在尝试执行该作业时,我收到 "Not a valid Jar" 错误。

我尝试遵循 link Not a valid Jar 但没有帮助。

任何人都可以给我关于如何从 eclipse 构建 jar 的说明,以便它在 Hadoop 上 运行。

我知道从 eclipse 构建 Jar 文件的过程,但是我不确定,我是否需要特别注意构建 jar 文件,以便它 运行s 在 Hadoop 上.

确保您提交的 jar (hist.jar) 位于您提交 'hadoop jar' 命令的当前目录中。

如果问题仍然存在,请告知您使用的 Java、Hadoop 和 Linux 版本。

当您提交命令时,请确保您有以下内容来执行命令:

  1. 当您指定罐子时,请确保您正确指向罐子。使用绝对路径可能最容易确定。要获取绝对路径,如果你导航到jar所在的地方,然后运行 'readlink -f '命令获取绝对路径。所以对您而言,不仅是 hist.jar,还可能是 /home/akash_user/jars/hist.jar 或您系统上的任何位置。如果您使用的是 Eclipse,它可能会将它保存在某个有趣的地方,因此请确保这不是问题所在。该 jar 不能来自 HDFS 存储 运行。必须 运行 来自本地存储。

  2. 当你命名你的主 class 时,在你的示例直方图中,你必须使用 class 的完全限定名称,以及包、项目和class。所以,通常,如果 program/project 命名为 Histogram,并且有一个 HistogramDriver,HistogramMapper,HistogramReducer,而你的 main() 在 HistogramDriver 中,你需要键入 Histogram.HistogramDriver 来获取程序 运行宁。 (除非你让你的 jar 运行 可用,这在开始时需要额外的东西,制作 .mdf 和其他东西。)

在执行MapReduce 作业时,不应将jar 文件保存在HDFS 中。确保 Jar 在本地路径中可用。输入路径和输出目录应该是来自HDFS的路径。