NFS вместо HDFS

#hadoop #hdfs #nfs

#hadoop #hdfs #нфс

Вопрос:

HDFS — это сердце Hadoop, я понимаю это. Но что, если я не хочу хранить свои данные в HDFS. Вместо этого я хочу анализировать и запускать задания Hadoop для данных, хранящихся на удаленном сервере, доступном по протоколу NFS? Как мне это сделать?

Например, я хочу запустить Teragen, используя данные на сервере NFS, как показано ниже:

 hadoop jar hadoop-mapreduce-examples.jar teragen 1000000000 nfs://IP/some/path
 

Я просто ищу идеи о том, как это сделать, и я понимаю последствия всего этого (HDFS против NFS). Итак, хотя я ценю, что кто-то говорит мне, что это плохая идея, я все же хочу сделать это для некоторого эксперимента, который я пытаюсь.

Возможно, я могу что-то закодировать, чтобы это произошло, но любые указания, с чего мне нужно начать, будут полезны и высоко оценены. Я также не хочу изобретать велосипед. Итак, если что-то подобное уже существует, о чем я не знаю, пожалуйста, прокомментируйте и дайте мне знать. Все, что я создам, будет сделано с открытым исходным кодом, чтобы другие тоже могли извлечь из этого пользу.

Комментарии:

1. Вы всегда можете сделать обратное и создать шлюз NFS для HDFS.

2. Шлюз NFS для HDFS уже существует ( hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs / … ) и это не то, о чем я говорю. Все, что делает шлюз NFS, — это «позволяет монтировать HDFS как часть локальной файловой системы клиента». Это сильно отличается от того, что я спрашиваю, где вы можете запускать задания Hadoop для данных, хранящихся на удаленном сервере NFS, не имеющих ничего общего с HDFS.

3. Вы всегда можете запустить свое приложение в локальном режиме YARN, и ваши пути к данным будут указывать на раздел, подключенный к NFS. Я знаю, что это должно работать на одном узле, но вам нужно посмотреть, сможете ли вы сделать это в кластере, работающем только с YARN без HDFS. Конечно, ваши подключения NFS должны быть симметричными на всех хостах вашего кластера.

4. «Смонтированный раздел NFS» нарушает то, что я пытаюсь сделать. Пожалуйста, прочитайте мой вопрос и описание еще раз. Если я смонтирую разделы NFS, то это будет точно так же, как HDFS, где тома NFS будут просто выглядеть как локальные тома для Hadoop. То, что я ищу, отличается от того, что HDFS не появляется на картинке и поэтому не имеет namenode (или, может быть, может, не уверен, как это будет работать без хранения данных в HDFS). Данные считываются и записываются на удаленный сервер NFS с помощью некоторого клиента NFS. Вот тут-то мне и нужны некоторые указания о том, как это сделать. Надеюсь, это прояснит ситуацию.

Ответ №1:

Знаете ли вы этот сайт: https://blog.netapp.com/blogs/run-big-data-analytics-natively-on-nfs-data /

Похоже, вы можете обмениваться HDFS с NFS внизу, в то время как на более высоком уровне абстракции все работает по-прежнему, поскольку MapReduce / YARN позаботится обо всем за вас.

Я ничего не могу сказать о том, работает это или нет, поскольку в настоящее время мы готовимся к настройке такого «родного NFS hadoop». Я вернусь к вам с более подробной информацией через несколько месяцев.