Вопрос

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

Меня также интересуют любые ваши результаты работы...

Это было полезно?

Решение

Да, вы можете использовать Hadoop в локальной файловой системе, используя файловые URI вместо HDFS URI в разных местах.Я думаю, что многие примеры, поставляемые с Hadoop, делают это.

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

Другие советы

Hadoop MapReduce может работать поверх любого количества файловых систем или даже более абстрактных источников данных, таких как базы данных.На самом деле существует пара встроенных классов для поддержки файловой системы, отличной от HDFS, таких как S3 и FTP.Вы также могли бы легко создать свой собственный формат ввода, расширив базовый Класс InputFormat.

Однако использование HDFS дает определенные преимущества.Наиболее мощным преимуществом является то, что планировщик заданий MapReduce попытается выполнить maps и reduce на физических машинах, которые хранят записи, нуждающиеся в обработке.Это повышает производительность, поскольку данные могут загружаться непосредственно с локального диска, а не передаваться по сети, что в зависимости от подключения может быть на порядки медленнее.

Как сказал Джо, вы действительно можете использовать Hadoop без HDFS.Однако пропускная способность зависит от способности кластера выполнять вычисления вблизи места хранения данных.Использование HDFS имеет 2 основных преимущества, IMHO: 1) вычисления распределяются более равномерно по кластеру (уменьшая объем межузловой связи) и 2) кластер в целом более устойчив к сбоям из-за недоступности данных.

Если ваши данные уже разбиты на разделы или их можно легко разбить на разделы, вы можете рассмотреть возможность предоставления собственной функции разбиения на разделы для вашей задачи сокращения карты.

Лучший способ разобраться в Hadoop - это загрузить его и начать изучать включенные примеры.Используйте Linux box / виртуальную машину, и ваша настройка будет намного проще, чем на Mac или Windows.Как только вы почувствуете себя комфортно с примерами и концепциями, начинайте понимать, как ваше проблемное пространство может быть отображено в фреймворк.

Пара ресурсов, которые могут оказаться полезными для получения дополнительной информации о Hadoop:

Видеоролики и презентации Hadoop Summit

Хадуп:Окончательное Руководство:Версия с черновой Нарезкой - Это одна из немногих (единственных?) книг, доступных на Hadoop на данный момент.Я бы сказал, что даже на данный момент это стоит той цены, по которой можно скачать книгу в электронном виде (книга готова примерно на 40% ).

Hadoop: The Definitive Guide: Rough Cuts Version

Параллельные / распределенные вычисления = СКОРОСТЬ << Hadoop делает это действительно простым и дешевым, поскольку вы можете просто использовать кучу обычных машин!!!

С годами объем дискового хранилища значительно увеличился, но скорость чтения данных не сохранилась.Чем больше данных у вас на одном диске, тем медленнее выполняется поиск.

Hadoop - это умный вариант подхода "разделяй и властвуй" к решению проблем.По сути, вы разбиваете проблему на более мелкие фрагменты и назначаете эти фрагменты нескольким разным компьютерам для параллельной обработки ускорьте процесс вместо того, чтобы перегружать одну машину.Каждая машина обрабатывает свое собственное подмножество данных, и в конечном итоге результат объединяется.Hadoop на одном узле не даст вам той скорости, которая имеет значение.

Чтобы увидеть преимущества hadoop, у вас должен быть кластер, содержащий по крайней мере 4-8 обычных компьютеров (в зависимости от размера ваших данных) на одной стойке.

Вам больше не нужно быть супер-гениальным инженером по параллельным системам, чтобы воспользоваться преимуществами распределенных вычислений.Просто знайте, что hadoop работает с Hive, и все готово.

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

Если вы просто промочили ноги, начните с загрузки CDH4 и запустите его.Вы можете легко установить его на локальную виртуальную машину и запустить в "псевдораспределенном режиме", который полностью имитирует работу в реальном кластере.

Да, вы можете использовать локальную файловую систему, используя file:// при указании входного файла и т.д., И это будет работать также с небольшими наборами данных.Но реальная мощь hadoop основана на механизме распределения и совместного использования.Но Hadoop используется для обработки огромного объема данных.Этот объем данных не может быть обработан одним локальным компьютером, а даже если и будет обработан, потребуется много времени для завершения работы.Поскольку ваш входной файл находится в общем расположении (HDFS), несколько картографов могут читать его одновременно, что сокращает время завершения задания.В двух словах, вы можете использовать его с локальной файловой системой, но для удовлетворения бизнес-требований вы должны использовать его с общей файловой системой.

Отличные теоретические ответы приведены выше.

Чтобы изменить файловую систему hadoop на локальную, вы можете изменить ее в файле конфигурации "core-site.xml", как показано ниже, для версий hadoop 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top