Я новичок в Hadoop и пытаюсь учиться. Я пытаюсь запустить приведенный ниже пример кода Hadoop в Eclipse на Ubuntu Linux. У меня Hadoop v 2.7.0, и у меня есть необходимые банки.Hadoop: как писать в HDFS с помощью приложения Java
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
Path pt=new Path("hdfs://localhost:9000/myhome/a.txt");
FileSystem fs = FileSystem.get(conf);
При запуске приложения в Eclipse, я получаю Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
. Файл hadoop-common-2.7.0.jar
, на который я ссылаюсь, не содержит приложения класса, которое ищет. Я ссылаюсь на файл jar файла Hadoop/common folder.
Любая помощь в решении этой проблемы будет высоко оценена.
Если я создаю файл jar класса для вышеуказанного кода и запускаю его с помощью hadoop -jar <jar file> <class name>
, он работает. Поэтому мне интересно, можно ли вообще запустить Java-приложение Hadoop из Eclipse или командной строки без использования команды hadoop.
Спасибо. Но я не использую Maven. Какие ящики мне не хватает? – Shashi
Лучшим способом обработки всех зависимостей через eclipse является Maven. В противном случае для импорта вручную требуется много обязательных ящиков. Когда вы выполняете команду hadoop -jar, она работает, это нормально, потому что исполняемый файл «hadoop» загружает все необходимые Jars в classLoader. –
OK. Я думаю, что получил ответ, который я искал. Не обязательно запускать клиентские приложения Hadoop с помощью команды hadoop jar <><>. Их также можно запустить из Eclipse. – Shashi