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

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

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

Ответов (9)

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

для hasoop версии 1.xx

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

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

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

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

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

Hadoop: полное руководство: версия для грубых сокращений

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

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

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

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