www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Практическое руководство: настройка среды данных с помощью Docker

Дата публикации Nov 19, 2019

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

Что такое Docker и почему вы должны попробовать?

Docker - один из самых простых и гибких способов создания, развертывания и запуска желаемых приложений в указанной среде, так называемых контейнерах. Конечно, вы спрашиваете себя, что такое контейнеры?

Нетехническое объяснение:Как и на картинке выше, представьте, что в нашем случае ваша локальная машина - это остров, на котором вы уже производите вещи. Чтобы улучшить это, вам нужны дополнительные инструменты, и они приходят (так же, как логотип Docker) в небольших контейнерах. Как только вы их настроите и запустите, они хороши.

Техническое объяснение:Контейнер - это стандартная единица программного обеспечения, которая упаковывает код и все его зависимости, поэтому приложение работает быстро и надежно из одной вычислительной среды в другую. Образ контейнера Docker - это легкий, автономный исполняемый пакет программного обеспечения, который включает в себя все необходимое для запуска приложения: код, среду выполнения, системные инструменты, системные библиотеки и настройки. Другие важные термины:

  • Изображения: просто снимок вашего контейнера.
  • Dockerfile: это файл yaml, который используется для создания вашего образа. В конце этого сеанса у вас будет шаблон yaml-файла, и вы будете использовать его со своими собственными спецификациями контейнера.
  • Докер-хаб:Здесь вы можете загружать и извлекать изображения Docker и использовать их для собственных нужд. В основном GitHub только для Docker.

Зачем использовать Docker?

Позвольте мне изложить вам основные причины, почему я люблю использовать Docker:

  • Для вас, как для исследователя данных или аналитика данных, докер означает, что вы можете сосредоточиться на исследовании, преобразовании и моделировании данных, не думая о системе, в которой ваша среда данных работает в первую очередь. Используя одно из тысяч приложений, готовых для запуска в ваших контейнерах Docker, вам не нужно беспокоиться об установке и подключении их всех по отдельности. Docker позволяет вам развернуть выбранную рабочую среду за считанные секунды - когда вам это нужно.
  • Предположим, что вы не единственный, кто работает в проекте, но члены вашей команды также должны получить код. Теперь один вариант - каждый товарищ по команде запускает код в своей среде с разными архитектурами, разными библиотеками и разными версиями приложений. Опция docker заключается в том, что каждый член имеет доступ к одному и тому же образу контейнера, запускает образ с помощью docker и готов к работе. Docker предоставляет повторяющиеся среды данных для всех в вашей команде, чтобы вы могли сразу начать сотрудничество.

Есть определенно несколько других преимуществ, которые идут с Docker, особенно если вы работаете с версией Enterprise. Это, безусловно, стоит изучить, и это не только полезно для вас, как ученый данных.

Установка и запуск Docker

Вы можете установить рабочий стол Docker, и это то, что вам нужно для начала работы:Docker Hub здесьвыберите версию Docker для вашего Mac или Windows и установите ее. Как только вы запустите Docker на своей локальной машине, вы сможете увидеть этого милого маленького кита на верхней панели навигации - отлично сработано.

Нажав на логотип Docker, вы можете увидеть, работает ли Docker. Другой вариант - открыть командную строку и ввести «информацию о докере», чтобы увидеть, что работает. Вот несколько основных команд Docker:

docker login #Log in to Docker registry
docker run <image> #create a new container and start it
docker start <image> #start an existing container

docker stop <name|id> #stop a running container
docker ps [-a include stopped containers] #show all containers
docker rm <name|id> #remove container by name or id
docker rmi$(docker images -q) # remove all images

Вы можете начать с простого примера, попробовав его с ноутбуком Jupyter. Все, что вам нужно сделать, это найти изображение в Docker Hub, открыть терминал и запустить докер. В приведенном ниже примере вы можете найти Jupyter, работающий на localhost: 8888 - Легко!

docker run -p 8888:8888 jupyter/scipy-notebook:2c80cf3537ca

Хотя теперь мы можем поиграть с нашим приложением в нашем контейнере, это не совсем полная среда данных, которую ищет продвинутый ученый. Возможно, вы захотите использовать более продвинутые инструменты, такие как Nifi для приема и обработки данных, Kafka для потоковой передачи данных и базы данных SQL или NonSQL для хранения промежуточных таблиц. Можем ли мы все еще использовать Docker для всего этого? Ответ: Да, конечно - Docker придумывает здесь, чтобы управлять всем этим для вас.

Docker Compose: собрать все вместе

Чтобы настроить желаемую среду данных, вы, вероятно, хотите, чтобы на нашем локальном компьютере работало несколько контейнеров. Вот почему мы используем Docker Compose. Compose - инструмент для определения и запуска многоконтейнерных приложений Docker. В то время как подключение каждого контейнера по отдельности может занимать много времени, docker compose позволяет множеству контейнеров взаимодействовать через их собственную сеть очень простым способом. С помощью compose вы сначала используете файл yaml для настройки служб вашего приложения, затем с помощью одной команды (docker compose up) вы создаете и запускаете все службы из ранее определенных вами.*

Далее вы можете найти основные шаги для начала:

  1. Определите среду вашего приложения с помощьюDockerfileдля легкого воспроизведения
  2. Укажите все ваши сервисы, которые составляют вашу среду данных вdocker-compose.yml
  3. Откройте свой терминал в папке, где вы сохранили файл yaml и запуститеdocker-compose up

docker-compose.ymlможет выглядеть примерно так же, как вы можете видеть ниже. И хотя вы, безусловно, можете использовать следующее в качестве шаблона, вы должны обязательно настроить его один раз для себя:

version: '3'
services:
zookeeper:
hostname: zookeeper
container_name: zookeeper_dataenv
image: 'bitnami/zookeeper:latest'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
nifi:
image: mkobit/nifi
container_name: nifi_dataenv
ports:
- 8080:8080
- 8081:8081
environment:
- NIFI_WEB_HTTP_PORT=8080
- NIFI_ZK_CONNECT_STRING=zookeeper:2181
minimal-jupyter-notebook:
image: jupyter/minimal-notebook:latest
ports:
- 8888:8888
mongodb:
image: mongo:latest
container_name: mongodb_dataenv
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/dev/null
ports:
- 27017:27017
grafana:
image: bitnami/grafana:latest
container_name: grafana_dataenv
ports:
- 3000:3000
db:
image: 'postgres:9.6.3-alpine'
container_name: psql_dataenv
ports:
- 5432:5432
environment:
POSTGRES_DB: psql_data_environment
POSTGRES_USER: psql_user
POSTGRES_PASSWORD: psql
PGDATA: /opt/psql_data
restart: "no"

Это оно! Вы только что узнали основы о том, как развернуть свою собственную среду данных в любом месте и в считанные секунды, что означает, что вы тратите меньше времени на настройку и больше времени на продуктивность.

************************************************** ************

Статьи, которые вы можете читать с удовольствием:

Устранение оттока - это Хакерство Роста 2.0

Вводить в заблуждение с данными и статистикой

************************************************** *************

Обратите внимание, что существует множество других вариантов программного обеспечения контейнера. Мне просто нравилось работать с Docker и я хотел поделиться с вами своим опытом

Ресурс для Docker Compose:

Докер / Compose

Compose - это инструмент для определения и запуска многоконтейнерных приложений Docker. С Compose вы используете файл Compose для…

github.com

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map