Статьи

Использование MongoDB с Hadoop & Spark: Часть 1. Введение и настройка

Первоначально Написано Мэттом Каланом


Hadoop — это программная технология, предназначенная для хранения и обработки больших объемов данных, распределенных по кластеру обычных серверов и обычных хранилищ. Первоначально Hadoop был вдохновлен публикациями Google, в которых описывался его подход к обработке больших объемов данных при индексации Интернета. Многие организации в настоящее время совместно используют возможности Hadoop и MongoDB для создания полнофункциональных приложений для работы с большими данными: MongoDB обеспечивает оперативное оперативное приложение в режиме реального времени, в то время как Hadoop использует данные из MongoDB и смешивает их с данными из других операционных систем, чтобы питать сложную аналитику и машины. обучение.

Это первая часть серии из трех статей о MongoDB и Hadoop:

  1. Введение и настройка Hadoop и MongoDB
  2. Пример улья
  3. Пример искры и ключевые выводы

Введение и настройка Hadoop и MongoDB

На сегодняшний день существует множество технологий управления данными, и это затрудняет распознавание рекламы. Работая в MongoDB Inc., я знаю огромное значение MongoDB как отличной оперативной базы данных для приложений в реальном времени; однако для аналитики и пакетных операций я хотел более четко понять доступные варианты и когда использовать некоторые другие замечательные опции, такие как Spark.

Я начал с простого примера взятия 1-минутных временных интервалов цен акций с начальной (первой) ценой, высокой (максимальной), минимальной (минимальной) и закрытой (последней) ценой каждого временного интервала и превращением их в 5-минутные. интервалы (называемые барами OHLC). 1-минутные данные сохраняются в MongoDB, а затем обрабатываются в Hive или Spark через Hadoop-коннектор MongoDB, который позволяет MongoDB быть входом или выходом в / из Hadoop и Spark.

Можно представить себе более типичный пример: вы записываете эти рыночные данные в MongoDB для целей реального времени, но затем потенциально запускаете автономные аналитические модели в другой среде. Конечно, модели будут намного сложнее — это просто пример уровня Hello World. Я выбрал бары OHLC только потому, что это были данные, которые я нашел легко.

Резюме

Вариант использования : объединение 1-минутных интервалов цен на акции в 5-минутные интервалы.
Вход :: 1-минутные интервалы цен на акции в базе данных MongoDB.
Простой анализ : выполняется в:
 — Hive
 — Spark.
Выход : 5-минутные интервалы цен на акции в Hadoop.

Шаги по настройке среды

  • Настройка среды Hadoop — Hadoop принимает активное участие в настройке, но, к счастью, Cloudera делает виртуальные машины доступными с уже установленным дистрибутивом, включая Hive и Spark. Я загрузил Virtualbox (менеджер VM с открытым исходным кодом) на свой ноутбук Mac, чтобы запустить виртуальные машины Cloudera отсюда .
  • Пройдите учебники — я прошел учебники, включенные в ВМ, которые были довольно полезны; иногда мне казалось, что я просто копирую и вставляю и не знаю, что происходит, особенно со Spark. Из учебников очевидно, что кривая обучения использованию Hadoop включает изучение многих продуктов в экосистеме (Sqoop, Avro, Hive, Flume, Spark и т. Д.). Если бы я делал только эту простую вещь, я бы ни за что не использовал Hadoop для этой кривой обучения, но, конечно, некоторые проблемы оправдывают усилия.
  • Скачать примерные данные — я погуглил некоторые примерные ценовые данные и нашел эти 1-минутные бары
  • Установите MongoDB на виртуальной машине — это очень просто с помощью yum на CentOS с этой страницы
  • Запустите MongoDB — файл конфигурации по умолчанию установлен yum, так что вы можете просто запустить его, чтобы запустить на локальном хосте и по умолчанию порт 27017
     mongod -f /etc/mongod.conf
    
  • Загрузка образцов данных — mongoimport позволяет загружать CSV-файлы напрямую в виде простого документа в MongoDB. Команда просто такая:
     mongoimport equities-msft-minute-bars-2009.csv -type csv -headerline -d marketdata -c minibars
    
  • Установите MongoDB Hadoop Connector — я выполнил шаги по ссылке ниже для сборки для Cloudera 5 (CDH5). Одно замечание: по умолчанию мой «git clone» помещает файлы mongo-hadoop в /etc/profile.d, но ваш репозиторий может быть настроен иначе. Также одним из добавочных этапов установки является установка пути к mongoimport в build.gradle в зависимости от того, где вы установили MongoDB. Я использовал yum и путь к инструментам Монго был / usr / bin /. Установить шаги здесь

Для следующих примеров, вот как выглядит документ в коллекции MongoDB (через оболочку Mongo). Вы запускаете оболочку Mongo просто с помощью команды «mongo» из каталога / bin установки MongoDB.

 > use marketdata 
> db.minbars.findOne()
{
    "_id" : ObjectId("54c00d1816526bc59d84b97c"),
    "Symbol" : "MSFT",
    "Timestamp" : "2009-08-24 09:30",
    "Day" : 24,
    "Open" : 24.41,
    "High" : 24.42,
    "Low" : 24.31,
    "Close" : 24.31,
    "Volume" : 683713
}

Посты № 2 и № 3 в этой серии блогов показывают примеры Hive и Spark, использующих эту настройку выше.

  1. Введение и настройка Hadoop и MongoDB
  2. Пример улья
  3. Пример искры и ключевые выводы

Чтобы узнать больше, посмотрите наше видео на MongoDB и Hadoop. Мы подробно расскажем о соединителе MongoDB для Hadoop и о том, как его можно применять для получения новых бизнес-идей.

СМОТРЕТЬ MONGODB & HADOOP