Кто-нибудь из вас пробовал Hadoop? Можно ли использовать его без связанной с ним распределенной файловой системы в архитектуре без совместного использования ресурсов? Это имело бы смысл?
Меня также интересуют любые ваши результаты ...


Да, вы можете использовать Hadoop в локальной файловой системе, используя URI файлов вместо URI hdfs в различных местах. Я думаю, что многие примеры, поставляемые с Hadoop, делают это.
Это, вероятно, нормально, если вы просто хотите узнать, как работает Hadoop и базовую парадигму сокращения карты, но вам понадобится несколько машин и распределенная файловая система, чтобы получить реальные преимущества масштабируемости, присущей архитектуре.
Как сказал Джо, вы действительно можете использовать Hadoop без HDFS. Однако пропускная способность зависит от способности кластера выполнять вычисления рядом с местом хранения данных. Использование HDFS имеет 2 основных преимущества. IMHO 1) вычисления распределяются более равномерно по кластеру (уменьшая объем межузловой связи) и 2) кластер в целом более устойчив к сбоям из-за недоступности данных.
Если ваши данные уже разделены или тривиально разбиты на разделы, вы можете подумать о предоставлении своей собственной функции разделения для вашей задачи уменьшения карты.
Лучший способ познакомиться с Hadoop - это загрузить его и начать изучать примеры включения. Используйте Linux / виртуальную машину, и ваша установка будет намного проще, чем Mac или Windows. Как только вы освоитесь с примерами и концепциями, начните смотреть, как ваше проблемное пространство может отображаться во фреймворке.
Несколько ресурсов, которые могут оказаться полезными для получения дополнительной информации о Hadoop:
Видео и презентации саммита Hadoop
Hadoop: Полное руководство: версия для грубых сокращений - это одна из немногих (единственных?) Книг, доступных на Hadoop на данный момент. Я бы сказал, что даже на данный момент это стоит затрат на электронную загрузку (книга готова на ~ 40%).

Hadoop MapReduce может работать поверх любого количества файловых систем или даже более абстрактных источников данных, таких как базы данных. Фактически существует пара встроенных классов для поддержки файловой системы, отличной от HDFS, таких как S3 и FTP. Вы также можете легко создать свой собственный формат ввода, расширив базовый InputFormat класс.
Однако использование HDFS дает определенные преимущества. Самым мощным преимуществом является то, что планировщик заданий MapReduce будет пытаться выполнять карты и сокращает количество операций на физических машинах, хранящих записи, требующие обработки. Это обеспечивает повышение производительности, поскольку данные можно загружать прямо с локального диска, а не передавать по сети, что в зависимости от соединения может быть на несколько порядков медленнее.
Параллельные / распределенные вычисления = СКОРОСТЬ
С годами емкость дисковых хранилищ значительно увеличилась, но скорость чтения данных не соответствовала. Чем больше данных на одном диске, тем медленнее выполняется поиск.
Hadoop - это умный вариант подхода к решению проблем «разделяй и властвуй». По сути, вы разбиваете проблему на более мелкие части и назначаете эти части нескольким различным компьютерам для выполнения обработки параллельно с ускорить процесс, а не перегружаете одну машину. Каждая машина обрабатывает свой собственный набор данных, и в конце результат объединяется. Hadoop на одном узле не даст вам той скорости, которая имеет значение.
Чтобы увидеть преимущества hadoop, у вас должен быть кластер с как минимум 4-8 стандартными машинами (в зависимости от размера ваших данных) на одной стойке.
Вам больше не нужно быть супер-гениальным инженером по параллельным системам, чтобы воспользоваться преимуществами распределенных вычислений. Просто знайте, что Hive с Hive, и вам хорошо.
да, hadoop можно очень хорошо использовать без HDFS. HDFS - это просто хранилище по умолчанию для Hadoop. Вы можете заменить HDFS любым другим хранилищем, например базами данных. HadoopDB - это расширение над Hadoop, в котором в качестве источника данных используются базы данных вместо HDFS. Погуглите, вы легко получите.
Если вы только что намочили ноги, начните с загрузки CDH4 и запуска его. Вы можете легко установить на локальную виртуальную машину и запустить ее в «псевдораспределенном режиме», который точно имитирует ее работу в реальном кластере.
Да, вы можете использовать локальную файловую систему с помощью file: // при указании входного файла и т. д., И это будет работать также с небольшими наборами данных, но фактическая мощность hadoop основана на распределенном механизме и механизме совместного использования. Но Hadoop используется для обработки огромного количества данных. Этот объем данных не может быть обработан на одной локальной машине, или даже если это произойдет, потребуется много времени, чтобы завершить работу. Поскольку ваш входной файл находится в общем месте (HDFS ) несколько картографов могут читать его одновременно, что сокращает время, необходимое для завершения работы. В двух словах, вы можете использовать его с локальной файловой системой, но для удовлетворения бизнес-требований вы должны использовать его с общей файловой системой.
Отличные теоретические ответы выше.
Чтобы изменить файловую систему hadoop на локальную, вы можете изменить ее в файле конфигурации "core-site.xml", как показано ниже для hasoop версии 2.x.x.
<property>
<name>fs.defaultFS</name>
<value>file:///</value>
</property>
для версий hadoop 1.x.x.
<property>
<name>fs.default.name</name>
<value>file:///</value>
</property>
какой аспект производительности hadoop вас интересует?