2015-08-20 1 views
1

Я новичок в 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.

ответ

2

Кажется, что JVM не загружает все необходимые артефакты Hadoop.

Если вы являетесь пользователем maven, убедитесь, что у вас есть эти зависимости.

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-client</artifactId> 
    <version>${hadoop.client.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-common</artifactId> 
    <version>${hadoop.client.version}</version> 
</dependency> 
+0

Спасибо. Но я не использую Maven. Какие ящики мне не хватает? – Shashi

+0

Лучшим способом обработки всех зависимостей через eclipse является Maven. В противном случае для импорта вручную требуется много обязательных ящиков. Когда вы выполняете команду hadoop -jar , она работает, это нормально, потому что исполняемый файл «hadoop» загружает все необходимые Jars в classLoader. –

+0

OK. Я думаю, что получил ответ, который я искал. Не обязательно запускать клиентские приложения Hadoop с помощью команды hadoop jar <><>. Их также можно запустить из Eclipse. – Shashi