【问题标题】:Is maven JAR runnable on hadoop?maven JAR 可以在 hadoop 上运行吗?
【发布时间】:2018-04-30 16:41:02
【问题描述】:

为了从 hadoop mapreduce 程序(mapreduce wordcount 示例)生成 jar,我使用了 maven。 在这里,我成功地完成了“清理”和“安装”。 还可以通过包含参数(输入和输出)作为 Java 应用程序运行来成功“构建”。 它成功地提供了预期的结果。 现在问题不在hadoop上运行。 给出以下错误:

Exception in thread "main" java.lang.ClassNotFoundException: WordCount

maven JAR 可以在 hadoop 上运行吗?

【问题讨论】:

  • Maven 是一个创建 Java 工件的构建工具。任何包含 hadoop 依赖项的 JAR 以及 Manifest 文件中具有 main() 方法的完全限定类的主程序都应该与 hadoop 一起使用。
  • WordCount 在包中吗?
  • WordCount 是包含“main”函数的类。

标签: maven hadoop mapreduce


【解决方案1】:

Maven 是一个创建 Java 工件的构建工具。任何包含 hadoop 依赖项的 JAR 和 Manifest 文件中具有 main() 方法的类都应该与 hadoop 一起使用。

尝试使用以下命令运行您的 JAR

hadoop jar your-jar.jar wordcount input output

其中“wordcount”是主方法类的名称,“input”和“output”是参数。

【讨论】:

  • "hadoop jar C:\Users\asus\Desktop\wc\target\wc-0.0.1.jar WordCount \input\a.txt \WordCountOutput" 这是命令。
【解决方案2】:

两件事

1) 我认为您在类名之前缺少包详细信息。复制您的包名并将其放在类名之前,它应该可以工作。

hadoop jar /home/user/examples.jar com.test.examples.WordCount /home/user/inputfolder /home/user/outputfolder

PS:如果你使用的是没有源代码的jar,你可以这样做

jar -tvf /home/user/examples.jar

它将打印所有类及其文件夹名称。将“/”替换为“.” (点),你会得到包名。但这需要 PATH 中的 JDK(不是 JRE)。

2) 您正在尝试从 Windows 提示符运行 MapReduce 程序。您确定您的 Windows 上安装了 Hadoop?

【讨论】:

  • Hadoop 已安装,但命令“hadoop -version”提供 java 版本,如“JDK_1.8_45”。这是问题吗?
  • hadoop version 据我所知,命令没有打印任何 java 信息​​。
  • 如何解决这个问题?
猜你喜欢
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
相关资源
最近更新 更多