Статьи

Установка MongoDB — Как установить MongoDB

Эта статья является частью нашего курса Академии под названием MongoDB — A Scalable NoSQL DB .

В этом курсе вы познакомитесь с MongoDB. Вы узнаете, как установить его и как управлять им через оболочку. Кроме того, вы узнаете, как получить программный доступ к нему через Java и как использовать Map Reduce с ним. Наконец, будут объяснены более сложные понятия, такие как шардинг и репликация. Проверьте это здесь !

1. Введение

Движение NoSQL породило огромное количество различных хранилищ данных, чтобы удовлетворить потребности практически любого мыслимого приложения: хранилища ключей / значений, графические базы данных, базы данных документов… В этом руководстве мы рассмотрим отличительный элемент хранилищ данных документов семья — MongoDB ( http://www.mongodb.org/ ). Цитата с сайта MongoDB :

«MongoDB (от« humongous ») — это база данных документов с открытым исходным кодом и ведущая база данных NoSQL, написанная на C ++».

Это краткое и простое определение описывает основную цель разработки MongoDB — хранение документов. Неудивительно, что документ — это просто набор полей (или свойств) и их значений, без какой-либо определенной схемы, определенной или требуемой.

MongoDB — довольно зрелый продукт. На момент написания последней версии 2.6 ( http://www.mongodb.org/downloads ), MongoDB предоставляет следующие ключевые функции:

  • Хранит документы в стиле JSON с динамическими схемами.
  • Полная поддержка индекса: индекс для любого атрибута документа.
  • Репликация и высокая доступность.
  • Авто-шардинг для горизонтального масштабирования.
  • Богатая поддержка запросов на основе документов.
  • Быстрое и атомарное обновление документов на месте.
  • Встроенная поддержка Map / Reduce для агрегации и обработки данных.
  • Файловая система GridFS.

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

2. Лицензия

Сам MongoDB распространяется под лицензией Free Software Foundation GNU AGPL v3.0 . Драйверы для разных языков программирования, которые поддерживаются MongoDB , выпускаются под лицензией Apache License v2.0 . Для получения более подробной информации о лицензировании, пожалуйста, обратитесь к официальной документации .

3. Документация

Команда MongoDB предоставляет отличную и актуальную документацию, доступную онлайн: http://docs.mongodb.org/manual/ . Это отличный источник, чтобы получить исчерпывающий обзор MongoDB и его возможностей. В этом руководстве мы будем много ссылаться на различные разделы документации MongoDB, чтобы вы могли быстро перейти к соответствующей теме.

4. Обзор архитектуры

На вершине иерархии модели данных MongoDB находится база данных. База данных — это физический контейнер для коллекций. Каждая база данных получает свой набор файлов в файловой системе, и один сервер MongoDB может иметь несколько баз данных.

Все документы сгруппированы в коллекции. Коллекция является эквивалентом таблицы RDBMS и существует в одной базе данных. Коллекции не применяют схему, и документы в коллекции могут иметь разные поля. С точки зрения моделирования данных, рекомендуется, чтобы все документы в коллекции имели одинаковую структуру или, по крайней мере, были как-то связаны.

Документ формирует запись в коллекции MongoDB и является основной единицей данных в MongoDB . Документы аналогичны объектам JSON, но существуют в базе данных в формате с большим количеством типов, известным как BSON ( двоичный JSON ).

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

5. Установка MongoDB

Одна из самых сильных сторон MongoDB — очень простая процедура установки, независимо от того, на какую платформу вы ориентируетесь. Он буквально следует шаблону загрузки и запуска, дополнительная настройка не требуется. Установочные пакеты предоставляются для всех основных операционных систем: Windows , Linux и MacOS X. В этом разделе мы рассмотрим процедуру установки MongoDB для всех платформ, упомянутых выше.

Для операционных систем Windows и Linux предусмотрены как 32-разрядные, так и 64-разрядные версии, однако рекомендуемая платформа для запуска процессов сервера MongoDB — 64-разрядная.

Примечание: MongoDB также предоставляет готовый двоичный дистрибутив для платформы Solaris . Мы не будем рассматривать эту операционную систему здесь, но процедура установки очень похожа на Linux .

5.1. Установка MongoDB в Windows

На платформе Windows существует два способа установки MongoDB : из пакета установщика Microsoft ( * .msi ) или из архива. Мы рассмотрим оба варианта, начиная с самого простого — архива.

Какой бы маршрут вы ни выбрали, результирующий набор двоичных файлов будет одинаковым, поэтому это всего лишь вопрос личных предпочтений. Обратите внимание, что MongoDB не поддерживает Windows XP или более старые версии Windows.

5.1.1 Установка из архива

Чтобы установить MongoDB из архива, достаточно выполнить два простых шага:

  1. Скачать архив дистрибутива
  • Распакуйте архив с дистрибутивом
  • После загрузки распакуйте архив в удобное место на локальном жестком диске.

    Для более продвинутых вариантов установки обратитесь к официальной документации .

    5.1.2 Установка из пакета MSI

    Процедура установки MongoDB из готового пакета * .msi также очень проста:

    1. Скачать дистрибутив * .msi пакет
  • Запустите загруженный пакет * .msi
  • Следуйте инструкциям мастера установки (при желании выберите удобное место на локальном жестком диске)
  • Если вы решили выполнить типичную установку, местом назначения по умолчанию будет C: \ Program Files \ MongoDB 2.6 Standard .

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

    5.2. Установка MongoDB в Linux

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

    1. Скачать архив дистрибутива
  • Распакуйте архив с дистрибутивом
    • Для Linux 32-битный дистрибутивный архив: tar xf mongodb-linux-i686-2.6.0.tgz Должна быть создана папка mongodb-linux-i686-2.6.0, содержащая все двоичные файлы.
    • Для Linux 64-битный дистрибутивный архив: tar xf mongodb-linux-x86_64-2.6.0.tgz Должна быть создана папка mongodb-linux-x86_64-2.6.0, содержащая все двоичные файлы.

    Следует отметить, что в дистрибутив MongoDB не включены управляющие сценарии (помещаемые в /etc/init.d ) для запуска серверного компонента во время запуска системы. Однако MongoDB предоставляет собственные официальные пакеты, которые развертывают эти сценарии и могут быть установлены с использованием разных менеджеров пакетов. Подробные инструкции по установке доступны для Ubuntu , CentOS / Fedora и Debian .

    Более подробные варианты установки и действия для разных дистрибутивов Linux см. В официальной документации .

    5.3. Установка MongoDB на MacOS X

    Установка на MongoDB очень похожа на версию Linux за исключением того факта, что предоставляется только 64-битный дистрибутив. Давайте подробнее рассмотрим этапы установки.

    1. Загрузите архив дистрибутива : https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.6.0.tgz
    2. Распакуйте архив с дистрибутивом
      После загрузки, пожалуйста, запустите команду:

      1
      tar xf mongodb-osx-x86_64-2.6.0.tgz

      Должна быть создана папка mongodb-osx-x86_64-2.6.0, содержащая все двоичные файлы.

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

    6. Сервер и инструменты MongoDB

    Двоичный дистрибутив MongoDB состоит из нескольких исполняемых файлов, представляющих сам процесс сервера и набор инструментов поверх него. По умолчанию все исполняемые файлы находятся в папке bin установленного дистрибутива.

    В этом разделе мы рассмотрим дистрибутив и рассмотрим каждый исполняемый файл, охватывающий версии как для Linux, так и для Windows.

    Имя исполняемого файла Описание
    mongod

    mongod.exe

    Процесс основного сервера (демона) для системы MongoDB . Он обрабатывает запросы данных, управляет форматом данных и выполняет операции фонового управления.

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    монго

    mongo.exe

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

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongos

    mongos.exe

    Служба маршрутизации для конфигураций сегмента MongoDB, которая обрабатывает запросы на уровне приложений и определяет расположение этих данных в кластере с сегментированием для выполнения этих операций. С точки зрения приложения экземпляр mongos / mongos.exe ведет себя идентично любому другому экземпляру MongoDB .

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongodump

    mongodump.exe

    Мощная утилита для создания бинарного экспорта содержимого баз данных, очень полезная для эффективного создания резервных копий. Его можно использовать вместе с mongorestore / mongorestore.exe для восстановления баз данных. Он может читать данные из экземпляров mongod / mongod.exe или mongos / mongos.exe , в дополнение к чтению напрямую из файлов данных MongoDB без активного запущенного mongod / mongod.exe .

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongorestore

    mongorestore.exe

    Этот инструмент записывает данные из двоичного дампа базы данных, созданного mongodump / mongodump.exe, в экземпляр MongoDB . Он может создать новую базу данных или добавить данные в существующую базу данных. Как и mongodump / mongodump.exe, он может записывать данные либо в экземпляры mongod / mongod.exe, либо в mongos / mongos.exe , в дополнение к записи непосредственно в файлы данных MongoDB без активного запущенного mongod / mongod.exe .

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongoexport

    mongoexport.exe

    Утилита, которая производит экспорт данных в формате JSON или CSV, хранящихся в экземпляре MongoDB . Он работает вместе с утилитой mongoimport / mongoimport.exe , которая обеспечивает возможность импорта.

    Примечание. Не рекомендуется использовать эту утилиту для полномасштабных производственных резервных копий, поскольку она может не надежно собирать информацию о типе данных. Вместо этого рекомендуется использовать mongodump / mongodump.exe .

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongoimport mongoimport.exe Утилита, позволяющая импортировать контент из экспорта в формате JSON , CSV или TSV, созданного mongoexport / mongoexport.exe или, возможно, другого стороннего инструмента экспорта. Он работает вместе с утилитой mongoexport / mongoexport.exe , которая предоставляет возможность экспорта.

    Примечание. Не рекомендуется использовать эту утилиту для полномасштабных производственных резервных копий, поскольку она может не надежно собирать информацию о типе данных. Вместо этого рекомендуется использовать mongorestore / mongorestore.exe .

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongotop

    mongotop.exe

    Это важная диагностическая утилита, которая предоставляет метод для отслеживания количества времени, которое экземпляр MongoDB тратит на чтение и запись данных. Статистика предоставляется на уровне каждой коллекции. По умолчанию mongotop / mongotop.exe возвращает значения каждую секунду.

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongostat

    mongostat.exe

    Полезная диагностическая утилита, которая обеспечивает быстрый обзор состояния запущенного в данный момент экземпляра mongod / mongod.exe или mongos / mongos.exe . По умолчанию он подключается к экземпляру, запущенному на локальном хосте, но также может подключаться к любому доступному удаленному экземпляру.

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongofiles

    mongofiles.exe

    Эта утилита позволяет управлять файлами, хранящимися в экземпляре MongoDB в объектах GridFS, из командной строки. Это особенно полезно, поскольку обеспечивает интерфейс между объектами, хранящимися в вашей файловой системе и GridFS . Кроме того, инструмент может напрямую обращаться к файлам данных MongoDB без активного mongod / mongod.exe .

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongooplog

    mongooplog.exe

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

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    mongoperf

    mongoperf.exe

    Диагностическая утилита, которая позволяет проверять производительность дискового ввода-вывода независимо от MongoDB . Он может предоставить довольно важную информацию об ожидаемых характеристиках производительности экземпляра MongoDB, работающего на этом хосте.

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    bsondump

    bsondump.exe

    Это диагностический инструмент, который позволяет конвертировать файлы BSON (формат хранения первичных документов MongoDB ) в удобочитаемые форматы, включая JSON . Это полезно для чтения выходных файлов, сгенерированных mongodump / mongodump.exe .

    Для более подробной информации и аргументов командной строки, пожалуйста, обратитесь к официальной документации .

    7. Запуск MongoDB

    После установки MongoDB можно запустить из командной строки, используя исполняемый файл mongod / mongod.exe . Единственный обязательный параметр — это место для хранения файлов базы данных, которое можно задать с помощью аргумента командной строки –dbpath .

    В Windows, если мы находимся внутри установленного / распакованного места распространения MongoDB , мы можем запустить сервер, выполнив следующие действия:

    1. Создайте папку данных (нам нужно сделать это только один раз): mkdir data
    2. Запустите сервер MongoDB: bin \ mongod.exe –dbpath data

    Сервер MongoDB успешно запущен в Windows.

    Чтобы остановить работающий экземпляр сервера MongoDB , достаточно набрать CTRL-C .

    В Linux последовательность команд точно такая же. Предполагая, что мы находимся в распакованном месте распространения MongoDB , давайте сделаем следующее:

    1. Создайте папку данных (нам нужно сделать это только один раз): mkdir data
    2. Запустите сервер MongoDB: bin / mongod –dbpath data

    Сервер MongoDB успешно запущен в Linux.

    Аналогично, чтобы остановить работающий экземпляр сервера MongoDB , достаточно набрать CTRL-C .

    Самый простой способ убедиться, что сервер MongoDB запущен и работает, это запустить оболочку MongoDB . Давайте рассмотрим это на примере, выполнив: bin / mongo (или bin \ mongo.exe в Windows). По умолчанию оболочка пытается подключиться к экземпляру сервера MongoDB на локальном компьютере и базе данных с проверкой имени.

    Сервер MongoDB с использованием интерактивной оболочки и выдачи команды db.stats () .

    Пожалуйста, не беспокойтесь, если команда db.stats () и ее вывод сбивают вас с толку. В следующей части мы собираемся уделить гораздо больше времени оболочке MongoDB , а пока мы проверяем только то, что сервер действительно готов принимать соединения и выполнять команды.

    8. Что дальше

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

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