Краткое руководство. Создание кластера Apache Spark в Azure HDInsight с помощью портал Azure

В этом кратком руководстве мы с помощью портала Azure создадим кластер Apache Spark в Azure HDInsight. Затем мы создадим записную книжку Jupyter Notebook и с ее помощью выполним SQL-запрос Spark к таблицам Apache Hive. Azure HDInsight — это управляемая комплексная служба аналитики с открытым кодом, предназначенная для предприятий. Платформа Apache Spark для HDInsight обеспечивает быструю аналитику данных и кластерные вычисления, используя обработку в памяти. Jupyter Notebook позволяет работать с данными, объединять код с текстом Markdown и выполнять простые визуализации.

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

Если вы используете несколько кластеров вместе, может потребоваться создать виртуальную сеть; Если вы используете кластер Spark, может также потребоваться использовать Подключение хранилища Hive. См. сведения о планировании виртуальной сети для Azure HDInsight и интеграции Apache Spark и Apache Hive с Hive Warehouse Connector.

Внимание

Счета за кластеры HDInsight выставляются пропорционально за минуту независимо от их использования. Обязательно удалите кластер, когда завершите его использование. Дополнительные сведения см. в разделе Очистка ресурсов этой статьи.

Необходимые компоненты

Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .

Создание кластера Apache Spark в HDInsight

С помощью портала Azure можно создать кластер HDInsight, который в качестве хранилища кластера использует BLOB-объекты Службы хранилища Azure. Дополнительные сведения об использовании Data Lake Storage Gen2 см. в статье Краткое руководство по установке кластеров в HDInsight.

  1. Войдите на портал Azure.

  2. В меню сверху выберите + Create a resource (+ Создать ресурс).

    Screenshot of Azure portal how to create a resource.

  3. Выберите элементы Analytics>Azure HDInsight, чтобы перейти на страницу Создание кластера HDInsight.

  4. На вкладке Основные сведения укажите следующую информацию:

    Свойство Описание
    Подписка В раскрывающемся списке выберите подписку Azure, которая используется для кластера.
    Группа ресурсов В раскрывающемся списке выберите существующую группу ресурсов, а затем Создать новую.
    Имя кластера Введите глобально уникальное имя.
    Область/регион В раскрывающемся списке выберите регион, в котором создается кластер.
    Availability zone Необязательно. Укажите зону доступности, в которой необходимо развернуть кластер.
    Тип кластера Выберите тип кластера, чтобы открыть список. Выберите Sparkиз списка.
    Версия кластера Это поле будет автоматически заполнено версией по умолчанию после выбора типа кластера.
    Имя пользователя для входа в кластер Введите имя пользователя для входа в кластер. Имя по умолчанию — администратор. Эта учетная запись используется для входа в Jupyter Notebook позже в кратком руководстве.
    Пароль для входа в кластер Введите пароль для входа в кластер.
    Имя пользователя для Secure Shell (SSH) Введите имя пользователя SSH. В данном кратком руководстве используется имя пользователя SSH sshuser. По умолчанию эта учетная запись использует тот же пароль, что и учетная запись для входа в кластер.

    Screenshot shows Create HDInsight cluster with the Basics tab selected.

  5. Нажмите кнопку Далее: служба хранилища >>, чтобы перейти на страницу Хранилище.

  6. На странице Хранилище укажите следующие значения.

    Свойство Description
    Тип первичного хранилища Используйте значение службы хранилища Azure по умолчанию.
    Метод выбора Используйте значение Выбрать в списке по умолчанию.
    Основную учетную запись хранения Используйте значение, предоставленное автоматически.
    Контейнер Используйте значение, предоставленное автоматически.

    Screenshot shows Create HDInsight cluster with the Storage tab selected.

    Чтобы продолжить выберите Просмотр и создание.

  7. В разделе Просмотр и создание выберите Создать. Процесс создания кластеров занимает около 20 минут. Прежде чем перейти к следующему сеансу, вы должны создать кластер.

Если при создании кластера HDInsight возникают проблемы, возможно, у вас нет необходимых разрешений. Дополнительные сведения см. в разделе Требования к контролю доступа.

Создание записной книжки Jupyter

Jupyter Notebook — это интерактивная среда записных книжек, которая поддерживает различные языки программирования. Notebook позволяет работать с данными, объединять код с текстом Markdown и выполнять простые визуализации.

  1. В веб-браузере перейдите на страницу https://CLUSTERNAME.azurehdinsight.net/jupyter, где CLUSTERNAME — это имя вашего кластера. При появлении запроса введите учетные данные для входа в кластер.

  2. Щелкните Создать>PySpark, чтобы создать элемент Notebook.

    Create a Jupyter Notebook to run interactive Spark SQL query.

    Будет создана и открыта записная книжка с именем Untitled (Untitled.pynb).

Выполнение инструкций SQL в Apache Spark

SQL — это наиболее распространенный и широко используемый язык для создания запросов и определения данных. Spark SQL работает как расширение Apache Spark для обработки структурированных данных с использованием знакомого синтаксиса SQL.

  1. Убедитесь, что ядро готово. Ядро будет готово, когда в записной книжке появится пустой круг рядом с именем ядра. Заполненный круг означает, что ядро занято.

    Screenshot shows a Jupyter window with a PySpark indicator.

    При первом запуске записной книжки некоторые задачи ядро выполняет в фоновом режиме. Дождитесь готовности ядра.

  2. Вставьте указанный ниже код в пустую ячейку и нажмите сочетание клавиш SHIFT + ВВОД, чтобы выполнить код. Эта команда выводит список таблиц Hive в кластере:

    %%sql
    SHOW TABLES
    

    При использовании записной книжки Jupyter Notebook с кластером HDInsight вы получаете предустановку sqlContext, которую можно применять для выполнения запросов Hive с помощью Spark SQL. %%sql указывает записной книжке Jupyter использовать предустановку sqlContext для выполнения запроса Hive. Запрос извлекает первые 10 строк из таблицы Hive (hivesampletable), которая по умолчанию входит в состав всех кластеров HDInsight. Для получения результатов может понадобиться около 30 секунд. Выходные данные выглядят следующим образом.

    Screenshot shows a Jupyter window for the notebook created in this quickstart. is quickstart." border="true":::

    При каждом выполнении запроса в Jupyter в заголовке окна веб-браузера будет отображаться состояние (Занято), а также название записной книжки. Кроме того, рядом с надписью PySpark в верхнем правом углу окна будет показан закрашенный кружок.

  3. Выполните другой запрос, чтобы вывести данные из таблицы hivesampletable.

    %%sql
    SELECT * FROM hivesampletable LIMIT 10
    

    Экран обновится, и отобразятся выходные данные запроса.

    Hive query output in HDInsight. Insights" border="true":::

  4. Для этого в меню File (Файл) элемента Notebook выберите Close and Halt (Закрыть и остановить). При завершении работы записной книжки освобождаются кластерные ресурсы.

Очистка ресурсов

HDInsight сохраняет ваши данные в службе хранилища Azure или Azure Data Lake Storage, что позволяет безопасно удалить неиспользуемый кластер. Плата за кластеры HDInsight взимается, даже когда они не используются. Так как затраты на кластер во много раз превышают затраты на хранилище, экономически целесообразно удалять неиспользуемые кластеры. Если вы планируете сразу приступить руководству, указанному в разделе Дальнейшие действия, то можете оставить кластер.

Вернитесь на портал Azure и выберите Удалить.

Azure portal delete an HDInsight cluster. sight cluster" border="true":::

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

Следующие шаги

Из этого краткого руководства вы узнали, как создать кластер Apache Spark в HDInsight и выполнить простой SQL-запрос Spark. Из следующего руководства вы узнаете, как с помощью кластера HDInsight выполнять интерактивные запросы, используя для этого пример данных.