繁体   English   中英

未找到类的Hadoop jar执行失败

[英]Hadoop jar execution failing on class not found

我正在运行我的hadoop工作,并且在找不到课程时失败了。 共4个java文件。

logProcessor.java
logMapper.java
logReducer.java
logParser.java

一切都在unix的com文件夹中,我有“package com;” 在所有类的第一行

这意味着如果你在命令头-5 * java下面你会看到包com; 在所有4个文件中。

logProcessor是Driver类。 所有文件都在unix上的“com”文件夹中。

ls -ltr com/
logProcessor.java
logMapper.java
logReducer.java
logParser.java

I compiled the java program and made a jar out of it.

hadoop jar /var/lib/hadoop-hdfs/xxxx/jarFiles/LogParser.jar com.LogProcessor /user/hdfs/flume/2015-03-30/03 /user/xxxx/output_xxx

它给我以下错误:

Exception in thread "main" java.lang.ClassNotFoundException: com.RFCLogProcessor
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:201)

首先,您需要在classpath中编写jar路径。 将jar文件的目录路径写入.bashrc文件。

然后你可以使用下面的命令:

hadoop jar directorypath / yourjarname.jar packagename.mainclassname outputpath

我正在做的一切都是正确的。 除了创建的类没有对它们执行权限

所以我做了

chmod -R 777 com /

并再次jar了它并使用相同的上述命令运行它并执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM