未找到类上的hadoop jar执行失败

pod7payv  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(429)

我正在运行我的hadoop作业,它在找不到类时失败。共4个java文件。

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

所有的东西都在unix上的com文件夹中,我有“package com在所有班级的第一行
这意味着如果您执行以下命令head-5*java,您将看到com包;在所有4个文件中。
logprocessor是驱动程序类。所有文件都在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)
2jcobegt

2jcobegt1#

我所做的一切都是对的。只是创建的类没有对它们的执行权限
所以我做了
chmod-r 777通信/
然后用上面同样的命令运行它,它就执行了。

o3imoua4

o3imoua42#

首先,需要在classpath中编写jar路径。将jar文件的目录路径写入.bashrc文件。
然后您可以使用以下命令:
hadoop jar目录路径/yourjarname.jar packagename.mainclassname outputpath

相关问题