Опыт работы с Hadoop?

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

Я также заинтересован в любых результатах производительности у вас есть...

9 ответов

Решение

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

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

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

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

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

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

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

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

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

Hadoop: полное руководство: версия для черновой резки - это одна из немногих (только?) Книг, доступных на Hadoop на данный момент. Я бы сказал, что это стоит того, чтобы загрузить электронную версию даже на этом этапе (книга завершена на ~40%).

Hadoop: полное руководство: версия для черновой резки

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

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

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

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

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

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

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

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

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

Чтобы изменить файловую систему hadoop на локальную, вы можете изменить ее в файле конфигурации "core-site.xml", как показано ниже для версий hadxx 2.xx

 <property>
    <name>fs.defaultFS</name>
    <value>file:///</value>
  </property>

для версий hadoop 1.xx

 <property>
    <name>fs.default.name</name>
    <value>file:///</value>
  </property>
Другие вопросы по тегам