1. Обзор
Cloud Dataproc — это управляемая служба Spark и Hadoop, которая позволяет вам использовать инструменты данных с открытым исходным кодом для пакетной обработки, выполнения запросов, потоковой передачи и машинного обучения. Автоматизация Cloud Dataproc помогает быстро создавать кластеры, легко ими управлять и экономить деньги, отключая кластеры, когда они вам не нужны. Потратив меньше времени и денег на администрирование, вы сможете сосредоточиться на своей работе и данных.
Это руководство адаптировано с https://cloud.google.com/dataproc/overview.
Что вы узнаете
- Как создать управляемый кластер Cloud Dataproc (с предустановленным Apache Spark ).
- Как отправить задание Spark
- Как изменить размер кластера
- Как подключиться по SSH к главному узлу кластера Dataproc
- Как использовать gcloud для проверки кластеров, заданий и правил брандмауэра
- Как выключить кластер
Что вам понадобится
Как вы будете использовать это руководство?
Как бы вы оценили свой опыт использования сервисов Google Cloud Platform?
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Cloud Console и создайте новый проект или повторно используйте существующий. (Если у вас еще нет учетной записи Gmail или G Suite, вам необходимо ее создать .)
Запомните идентификатор проекта — уникальное имя для всех проектов Google Cloud (имя, указанное выше, уже занято и не подойдет вам, извините!). Позже в этой лаборатории он будет называться PROJECT_ID
.
- Далее вам необходимо включить биллинг в Cloud Console, чтобы использовать ресурсы Google Cloud.
Прохождение этой лаборатории кода не должно стоить много, если вообще стоит. Обязательно следуйте всем инструкциям в разделе «Очистка», в которых рассказывается, как отключить ресурсы, чтобы вам не приходилось нести расходы, выходящие за рамки этого руководства. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
3. Включите API Cloud Dataproc и Google Compute Engine.
Нажмите на значок меню в левом верхнем углу экрана.
Выберите Менеджер API из раскрывающегося списка.
Нажмите «Включить API и службы» .
Найдите «Computer Engine» в поле поиска. Нажмите «Google Compute Engine API» в появившемся списке результатов.
На странице Google Compute Engine нажмите «Включить» .
После включения нажмите стрелку, указывающую влево, чтобы вернуться назад.
Теперь найдите «API Google Cloud Dataproc» и включите его.
4. Запустите Cloud Shell.
Эта виртуальная машина на базе Debian оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Это означает, что все, что вам понадобится для этой лаборатории кода, — это браузер (да, он работает на Chromebook).
- Чтобы активировать Cloud Shell из Cloud Console, просто нажмите «Активировать Cloud Shell». (подготовка и подключение к среде займет всего несколько минут).
После подключения к Cloud Shell вы увидите, что вы уже прошли аутентификацию и что для проекта уже установлен ваш PROJECT_ID
.
gcloud auth list
Вывод команды
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Вывод команды
[core] project = <PROJECT_ID>
Если по какой-то причине проект не установлен, просто введите следующую команду:
gcloud config set project <PROJECT_ID>
Ищете свой PROJECT_ID
? Узнайте, какой идентификатор вы использовали на этапах настройки, или найдите его на панели управления Cloud Console:
Cloud Shell также по умолчанию устанавливает некоторые переменные среды, которые могут быть полезны при выполнении будущих команд.
echo $GOOGLE_CLOUD_PROJECT
Вывод команды
<PROJECT_ID>
- Наконец, установите зону по умолчанию и конфигурацию проекта.
gcloud config set compute/zone us-central1-f
Вы можете выбрать множество различных зон. Дополнительную информацию см. в разделе «Регионы и зоны» .
5. Создайте кластер Cloud Dataproc.
После запуска Cloud Shell вы можете использовать командную строку для вызова команды Cloud SDK gcloud или других инструментов, доступных на экземпляре виртуальной машины.
Выберите имя кластера для использования в этой лабораторной работе:
$ CLUSTERNAME=${USER}-dplab
Начнем с создания нового кластера:
$ gcloud dataproc clusters create ${CLUSTERNAME} \
--region=us-central1 \
--scopes=cloud-platform \
--tags codelab \
--zone=us-central1-c
Настройки кластера по умолчанию, включающие два рабочих узла, должны быть достаточными для этого руководства. Приведенная выше команда включает параметр --zone
, позволяющий указать географическую зону, в которой будет создан кластер, а также два дополнительных параметра, --scopes
и --tags
, которые описаны ниже при использовании функций, которые они включают. См. команду gcloud dataproc clusters create
Cloud SDK для получения информации об использовании флагов командной строки для настройки параметров кластера.
6. Отправьте задание Spark в свой кластер.
Вы можете отправить задание через запрос jobs.submit
Cloud Dataproc API, с помощью инструмента командной строки gcloud
или из консоли Google Cloud Platform . Вы также можете подключиться к экземпляру машины в кластере с помощью SSH, а затем запустить задание из экземпляра.
Давайте отправим задание с помощью инструмента gcloud
из командной строки Cloud Shell:
$ gcloud dataproc jobs submit spark --cluster ${CLUSTERNAME} \
--class org.apache.spark.examples.SparkPi \
--jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000
По мере выполнения задания вы увидите результат в окне Cloud Shell.
Прервите вывод, введя Control-C. Это остановит выполнение команды gcloud
, но задание все равно будет выполняться в кластере Dataproc.
7. Список вакансий и повторное подключение
Распечатайте список вакансий:
$ gcloud dataproc jobs list --cluster ${CLUSTERNAME}
Последняя отправленная вакансия находится вверху списка. Скопируйте идентификатор задания и вставьте его вместо « jobId
» в приведенной ниже команде. Команда повторно подключится к указанному заданию и отобразит его выходные данные:
$ gcloud dataproc jobs wait jobId
Когда задание завершится, выходные данные будут содержать приблизительное значение числа Пи.
8. Изменить размер кластера
Для выполнения более крупных вычислений вам может потребоваться добавить в кластер больше узлов, чтобы ускорить его. Dataproc позволяет добавлять узлы в кластер и удалять их из него в любое время.
Изучите конфигурацию кластера:
$ gcloud dataproc clusters describe ${CLUSTERNAME}
Увеличьте размер кластера, добавив несколько вытесняемых узлов:
$ gcloud dataproc clusters update ${CLUSTERNAME} --num-secondary-workers=2
Еще раз осмотрите кластер:
$ gcloud dataproc clusters describe ${CLUSTERNAME}
Обратите внимание, что в дополнение к файлу workerConfig
из исходного описания кластера теперь существует также и secondaryWorkerConfig
, который включает два instanceNames
для вытесняемых рабочих процессов. Dataproc показывает статус кластера как готовность, пока загружаются новые узлы.
Поскольку вы начали с двух узлов, а теперь у вас четыре, ваши задания Spark должны выполняться примерно в два раза быстрее.
9. SSH в кластер
Подключитесь через ssh к главному узлу, имя экземпляра которого всегда является именем кластера с добавленным -m
:
$ gcloud compute ssh ${CLUSTERNAME}-m --zone=us-central1-c
При первом запуске команды ssh в Cloud Shell там будут сгенерированы ключи ssh для вашей учетной записи. Вы можете выбрать парольную фразу или пока использовать пустую парольную фразу и при желании изменить ее позже с помощью ssh-keygen
.
В экземпляре проверьте имя хоста:
$ hostname
Поскольку при создании кластера вы указали --scopes=cloud-platform
, вы можете запускать команды gcloud
в своем кластере. Перечислите кластеры в вашем проекте:
$ gcloud dataproc clusters list
Выйдите из ssh-соединения, когда закончите:
$ logout
10. Изучите теги
При создании кластера вы включили параметр --tags
, чтобы добавить тег к каждому узлу кластера. Теги используются для прикрепления правил межсетевого экрана к каждому узлу. В этой лаборатории кода вы не создали ни одного подходящего правила брандмауэра, но вы все равно можете проверить теги на узле и правила брандмауэра в сети.
Распечатайте описание главного узла:
$ gcloud compute instances describe ${CLUSTERNAME}-m --zone us-central1-c
Найдите tags:
в конце вывода и убедитесь, что он включает codelab
.
Распечатайте правила брандмауэра:
$ gcloud compute firewall-rules list
Обратите внимание на столбцы SRC_TAGS
и TARGET_TAGS
. Прикрепив тег к правилу брандмауэра, вы можете указать, что его следует использовать на всех узлах, имеющих этот тег.
11. Выключите свой кластер
Вы можете выключить кластер с помощью запроса Cloud Dataproc API clusters.delete
, из командной строки с помощью исполняемого файла gcloud dataproc clusters delete
или из консоли Google Cloud Platform .
Давайте завершим кластер с помощью командной строки Cloud Shell:
$ gcloud dataproc clusters delete ${CLUSTERNAME} --region us-central1
12. Поздравляем!
Вы узнали, как создать кластер Dataproc, отправить задание Spark, изменить размер кластера, использовать ssh для входа в главный узел, использовать gcloud для проверки кластеров, заданий и правил брандмауэра и выключить кластер с помощью gcloud!
Узнать больше
- Документация Dataproc: https://cloud.google.com/dataproc/overview.
- Начало работы с Dataproc с использованием лаборатории кода консоли
Лицензия
Эта работа распространяется под лицензией Creative Commons Attribution 3.0 Generic License и лицензией Apache 2.0.