Доступ к hdfs извне hadoop - PullRequest
       7

Доступ к hdfs извне hadoop

3 голосов
/ 28 января 2012

Я хочу запустить некоторые исполняемые файлы вне hadoop (но в том же кластере), используя входные файлы, которые хранятся в HDFS.

Нужно ли эти файлы локально копировать на узел?или есть способ получить доступ к HDFS за пределами hadoop?

Любые другие предложения о том, как это сделать, подойдут.К сожалению, мои исполняемые файлы не могут быть запущены в hadoop, хотя.

Спасибо!

Ответы [ 4 ]

5 голосов
/ 28 января 2012

Есть несколько типичных способов:

  • Вы можете получить доступ к файлам HDFS через HDFS Java API , если вы пишете свою программу на Java. Вы, вероятно, ищете open . Это даст вам поток, который действует как общий открытый файл.
  • Вы можете передавать данные с помощью hadoop cat, если ваша программа принимает данные через stdin: hadoop fs -cat /path/to/file/part-r-* | myprogram.pl. С помощью этой команды командной строки вы можете гипотетически создать мост с чем-то вроде popen.
3 голосов
/ 28 января 2012

Также проверьте WebHDFS , который сделал в версии 1.0.0 и также будет в версии 23.1. Поскольку он основан на API остальных, к нему может получить доступ любой язык, а также Hadoop не нужно устанавливать на узле, на котором требуются файлы HDFS. Также. это так же быстро, как и другие варианты, упомянутые Orangeoctopus.

0 голосов
/ 12 апреля 2013

У меня была похожая проблема и задан соответствующий вопрос. Мне нужно было получить доступ к службам HDFS / MapReduce за пределами кластера. После того, как я нашел решение, я разместил здесь ответ для HDFS . Самой болезненной проблемой оказалась аутентификация пользователя, которая в моем случае была решена в самом простом случае (полный код в моем вопросе).

Если вам нужно минимизировать зависимости и не хотите устанавливать hadoop на клиентах , вот хорошая статья Cloudera , как настроить Maven для создания JAR для этого. 100% успеха в моем случае.

Основное отличие в публикации заданий Remote MapReduce по сравнению с доступом HDFS - только один параметр конфигурации (проверьте для переменной mapred.job.tracker).

0 голосов
/ 30 мая 2012

Лучший способ - установить пакет hadoop-0.20-native на коробку, в которой вы запускаете свой код. Пакет hadoop-0.20-native может обращаться к файловой системе hdfs. Может выступать в роли прокси hdfs.

...