2012-04-05 1 views
1

Я пишу работу hadoop, которая сканирует страницы. Библиотека, которую я использую, использует файловую систему для хранения данных обхода при обходе. Я был уверен, что библиотека должна быть изменена для использования HDFS, так как для взаимодействия с HDFS необходимо использовать совершенно другой набор классов, в то время как используемая библиотека искателя использует java.io.Почему использование hdfs: // префикса для пути к файлу позволяет открыть файл?

Однако, когда коллега использовал hdfs: // localhost/path/to/storage, для пути к папке хранения искатель работал, и он мог писать в файловую систему. Я пытаюсь понять, почему это работает, есть ли что-то другое в jvms, основанных на hadoop, что заставляет их разрешать hdfs: // префиксные пути к пути на HDFS?

+1

Вы уверены, что это в HDFS не в локальной файловой системе ?;) –

+0

@ThomasJungblut Вы правы. Фактически это записывалось в локальную файловую систему. – rsman

ответ

2

Я не знаю, какой интерфейс HDFS вы используете. Hadoop обеспечивает общий уровень файловой системы. Если вы не укажете адрес NameNode в конфигурационном файле hadoop (в HADOOP_HOME/conf/core-site.xml и имя свойства «fs.default.name»), все ваши «hadoop fs ...» комментарии будут по умолчанию локальными файловыми системами. Итак, если вы не знаете, что такое конфигурация hadoop, в том числе «hdfs: // namenode: port /» в качестве префикса, это хорошая идея.