Я установил hadoop 1.0.4. Я включил webhdfs и использовал команду curl, чтобы получить домашний каталог.

curl -i "http://172.16.30.40:50075/webhdfs/v1?user.name=ubantu&op=GETFILESTATUS"

Он работает для GETHOMEDIRECTORY, но не работает для других операций, таких как GETFILESTATUS, LISTSTATUS и т. д.

Я получаю исключение

**{"RemoteException":{"exception":"FileNotFoundException","javaClassName":"java.io.FileNotFoundException","message":"File /webhdfs/v1 not found."}}**

Вот файлы conf:

HDFS - site.xml

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>3</value>
     </property>
     <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
     </property>
     <property>
       <name>dfs.support.append</name>
       <value>true</value>
    </property>
</configuration>

Кто-нибудь может дать несколько предложений?

Спасибо.

0
Amol Fasale 26 Мар 2013 в 13:10

1 ответ

Лучший ответ

Согласно документации (http://hadoop.apache.org/docs/ r1.0.4 / webhdfs.html # GETHOMEDIRECTORY), чтобы получить доступ к домашнему каталогу, вы должны использовать curl -i "http://<HOST>:<PORT>/webhdfs/v1/?op=GETHOMEDIRECTORY"

Также попробуйте использовать: 50070. Это порт, который я использую для веб-файлов, и он отлично работает.

curl -i "http://localhost:50070/webhdfs/v1/?op=GETHOMEDIRECTORY" 

Обновление:

В вашем примере вы не указываете путь к файлу, статус которого нужно проверить. В приведенном ниже примере, если вы замените / path / на / your / путем к файлу, а затем замените 'file' на свое имя файла, то что это даст вам?

curl -i  "http://localhost:50070/webhdfs/v1/path/to/your/file?op=GETFILESTATUS"
0
Mark Vickery 26 Мар 2013 в 14:53
Да, я проделал то же самое с GETHOMEDIRECTORY, но не работал с другими операциями, такими как GETFILESTATUS, LISTSTATUS и т. Д.
 – 
Amol Fasale
26 Мар 2013 в 14:32
Да Это делается путем добавления каталога пользователя, localhost: 50070 / webhdfs / v1 / user? op = GETFILESTATUS
 – 
Amol Fasale
26 Мар 2013 в 15:06
Как я могу выполнять другие операции, такие как ОТКРЫТЬ, ЗАПИСАТЬ и ЧИТАТЬ с HDFS, используя webhdfs?
 – 
Amol Fasale
26 Мар 2013 в 15:07
Эти шаги немного сложнее, чем некоторые из основных. Вам нужно выполнить две команды. Первая команда, которую вы запрашиваете для записи файла и webdfs, затем отвечает с указанием хоста и порта, на который будет отправлен запрос. Затем вы выполняете следующую команду, чтобы записать файл в только что указанное место. (hadoop.apache.org/docs/r1.0.4/webhdfs.html #CREATE)
 – 
Mark Vickery
26 Мар 2013 в 15:22