Не удалось выполнить Jar-файл Hadoop в классе

1

Я запускаю свою работу в hadoop, и она терпит неудачу по классу, который не найден. Всего 4 файла java.

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

Все в папке com в unix, и у меня есть пакет com; в первой строке во всех классах

это означает, что если вы делаете ниже команды -5 * java, вы увидите пакет com; во всех 4 файлах.

logProcessor - это класс драйвера. Все файлы находятся в папке "com" в unix.

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)
Теги:
class
hadoop
mapreduce

2 ответа

1
Лучший ответ

Все, что я делал, было правильным. За исключением того, что созданные классы не имели разрешения на выполнение

Так я и сделал

chmod -R 777 com/

и снова jar'd и запускал его с помощью той же команды, и он выполнялся.

2

Во-первых, вам нужно написать свой путь jar в пути к классам. напишите путь каталога вашего файла jar в файл.bashrc.

Затем вы можете использовать команду ниже:

hasoop jar directorypath/yourjarname.jar packagename.mainclassname путь вывода

Ещё вопросы

Сообщество Overcoder
Наверх
Меню