Доступ к файлам HDFS из Eclipse - PullRequest
0 голосов
/ 18 октября 2011

Я новичок в Hadoop. Я сталкиваюсь с проблемами при доступе к файлам в моей системе HDFS из моего Java-кода в Eclipse. Хотя для моего fs.default.name установлено значение hdfs: // localhost: portno в core-site.xml, он дает мне URI в виде file: // вместо hdfs: // Я попробовал несколько других вещей, например, установив свой путь ввода как показано ниже: FileInputFormat.setInputPaths (conf, new Path ("hdfs: // localhost: 9021 / user / training / shakespeare / poems"));

но выдает ошибку тайм-аута: 10.10.17 15:31:31 INFO ipc.Client: повторная попытка подключения к серверу: localhost / 127.0.0.1: 9021. Уже пробовал 0 раз.

Пожалуйста, объясните мне, как решить эту проблему, потому что я очень застрял в этом. Любая помощь будет принята с благодарностью.

Спасибо

Ответы [ 2 ]

3 голосов
/ 20 июля 2012

Необходимо убедиться, что папка {$HADOOP_HOME}/conf, содержащая core-site.xml, hdfs-site.xml и mapred-site.xml, находится в Java CLASSPATH, пока вы запускаете программу из Eclipse.

Чтобы добавить эту папкуCLASSPATH щелкните правой кнопкой мыши папку-> свойства-> Путь сборки Java-> Добавить папку внешнего класса.

1 голос
/ 07 февраля 2017

Если вы не хотите указывать * -site.xml файлы, вы можете просто настроить клиент Hadoop непосредственно в коде:

Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://namenode:8020");
FileSystem fs = FileSystem.get(conf);

Если вы используете Maven в своем проекте, вы можете добавить клиента hadoop в ваш файл pom.xml следующим образом (при условии, что вы выбираете дистрибутив cloudera):

<repositories>
    <repository>
        <id>cloudera</id>
        <url>https://repository.cloudera.com/content/repositories/releases/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.6.0-cdh5.5.0</version>
    </dependency>
</dependencies>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...