Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте средства HDInsight в Наборе средств Azure для Eclipse для разработки приложений Apache Spark , написанных в Scala , и их отправки в кластер Azure HDInsight Spark непосредственно из интегрированной среды разработки Eclipse. Подключаемый модуль инструментов HDInsight можно использовать несколькими разными способами:
- Разработка и отправка приложения Scala Spark в кластере HDInsight Spark.
- Чтобы получить доступ к ресурсам кластера Azure HDInsight Spark.
- Для разработки и запуска приложения Scala Spark локально.
Предпосылки
Кластер Apache Spark в HDInsight. Для получения инструкций см. Создание кластеров Apache Spark в Azure HDInsight.
Интегрированная среда разработки Eclipse. В этой статье используется интегрированная среда разработки Eclipse для разработчиков Java.
Установите необходимые подключаемые модули
Установка Azure Toolkit for Eclipse
Инструкции по установке см. в разделе "Установка набора средств Azure для Eclipse".
Установка подключаемого модуля Scala
Когда вы открываете Eclipse, инструменты HDInsight автоматически определяют, установлен ли плагин Scala. Нажмите кнопку "ОК ", чтобы продолжить, а затем следуйте инструкциям по установке подключаемого модуля из Eclipse Marketplace. Перезапустите интегрированную среду разработки после завершения установки.
Подтверждение подключаемых модулей
Перейдите к справке>Eclipse Marketplace....
Выберите вкладку "Установленная".
Вы должны увидеть хотя бы следующее:
- Набор средств Azure для Eclipse<версия>.
- Версия IDE <>Scala.
Войдите в подписку Azure.
Запустите интегрированную среду разработки Eclipse.
Перейдите к Окно>Показать представление>Другое...>Войдите в систему....
В диалоговом окне "Показать представление " перейдите в Azure>Explorer и нажмите кнопку "Открыть".
В Azure Explorer щелкните правой кнопкой мыши узел Azure и выберите команду "Войти".
В диалоговом окне входа Azure выберите метод проверки подлинности, нажмите кнопку "Войти" и завершите процесс входа.
После входа в диалоговое окно "Подписки" выводится список всех подписок Azure, связанных с учетными данными. Нажмите клавишу SELECT , чтобы закрыть диалоговое окно.
В Azure Explorer перейдите в Azure> HDInsight, чтобы просмотреть кластерыHDInsight Spark в подписке.
Вы можете дополнительно развернуть узел имени кластера, чтобы просмотреть ресурсы (например, учетные записи хранения), связанные с кластером.
Связывание кластера
Вы можете связать обычный кластер с помощью управляемого имени пользователя Ambari. Аналогичным образом, для присоединенного к домену кластера HDInsight можно связаться с помощью домена и имени пользователя, например [email protected]
.
В Azure Explorer щелкните правой кнопкой мыши HDInsight и выберите Связать кластер.
Введите имя кластера, имя пользователя и пароль, а затем нажмите кнопку "ОК". При необходимости введите учетную запись хранения и ключ хранилища, а затем выберите контейнер хранилища, чтобы обозреватель хранилища работал в левой части древовидного представления.
Примечание.
Мы используем связанный ключ хранилища, имя пользователя и пароль, если кластер вошел в подписку Azure и связан кластер.
Для пользователя, работающего только с клавиатурой, когда текущий фокус находится на Storage Key, необходимо использовать Ctrl+TAB, чтобы переключиться на следующее поле в диалоговом окне.
Связанный кластер можно просмотреть в HDInsight. Теперь вы можете отправить приложение в этот связанный кластер.
Кроме того, вы можете отменить связь с кластером из Azure Explorer.
Настройка проекта Spark Scala для кластера HDInsight Spark
В рабочей области IDE Eclipse выберите файл>нового>проекта....
В мастере создания нового проекта выберите HDInsight Project>Spark на HDInsight (Scala). Затем выберите Далее.
В диалоговом окне "Новый проект HDInsight Scala" укажите следующие значения и нажмите кнопку "Далее".
- Введите имя проекта.
- В области JRE убедитесь, что для JRE среды выполнения задано значение JavaSE-1.7 или более поздней версии.
- В области библиотеки Spark можно выбрать вариант "Использовать Maven", чтобы настроить параметр пакета SDK Spark . Наше средство интегрирует правильную версию пакета SDK Spark и пакета SDK Scala. Вы также можете вручную выбрать вариант добавления пакета SDK Spark , скачать и добавить пакет SDK Spark вручную.
В следующем диалоговом окне просмотрите сведения и нажмите кнопку "Готово".
Создание приложения Scala для кластера HDInsight Spark
В обозревателе пакетов разверните созданный ранее проект. Щелкните правой кнопкой мыши на src, выберите Новый>другое....
В диалоговом окне "Выбор мастера" выберите Scala Wizards>Scala Object. Затем выберите Далее.
В диалоговом окне "Создать файл" введите имя объекта и нажмите кнопку "Готово". Откроется текстовый редактор.
В текстовом редакторе замените текущее содержимое приведенным ниже кодом:
import org.apache.spark.SparkConf import org.apache.spark.SparkContext object MyClusterApp{ def main (arg: Array[String]): Unit = { val conf = new SparkConf().setAppName("MyClusterApp") val sc = new SparkContext(conf) val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv") //find the rows that have only one digit in the seventh column in the CSV val rdd1 = rdd.filter(s => s.split(",")(6).length() == 1) rdd1.saveAsTextFile("wasbs:///HVACOut") } }
Запустите приложение в кластере HDInsight Spark:
a. В обозревателе пакетов щелкните правой кнопкой мыши имя проекта и выберите "Отправить приложение Spark в HDInsight".
б. В диалоговом окне отправки Spark укажите следующие значения и нажмите кнопку "Отправить".
Для имени кластера выберите кластер HDInsight Spark, на котором нужно запустить приложение.
Выберите артефакт из проекта Eclipse или выберите один из жестких дисков. Значение по умолчанию зависит от элемента, который вы щелкаете правой кнопкой мыши из обозревателя пакетов.
В раскрывающемся списке названия основного класса мастер отправки отображает все имена объектов из вашего проекта. Выберите или введите тот, который требуется запустить. Если вы выбрали артефакт из жесткого диска, необходимо ввести имя основного класса вручную.
Так как код приложения в этом примере не требует аргументов командной строки или ссылок на JAR или файлы, можно оставить оставшиеся текстовые поля пустыми.
Вкладка "Отправка Spark" должна начать отображать ход выполнения. Вы можете остановить приложение, нажав красную кнопку в окне отправки Spark . Вы также можете просмотреть журналы для этого конкретного приложения, выбрав значок глобуса (обозначаемый синим полем на изображении).
Доступ к кластерам HDInsight Spark и управление ими с помощью средств HDInsight в Наборе средств Azure для Eclipse
Вы можете выполнять различные операции с помощью средств HDInsight, включая доступ к выходным данным задания.
Просмотреть задание
В Azure Explorer разверните HDInsight, а затем имя кластера Spark и выберите "Задания".
Выберите узел Jobs. Если версия Java ниже 1.8, средства HDInsight автоматически предлагают установить подключаемый модуль E(fx)clipse. Нажмите кнопку "ОК ", чтобы продолжить, а затем следуйте мастеру, чтобы установить его из Eclipse Marketplace и перезапустить Eclipse.
Откройте представление задания из узла заданий . На правой панели вкладка "Представление задания Spark " отображает все приложения, которые были запущены в кластере. Выберите имя приложения, для которого вы хотите просмотреть дополнительные сведения.
Затем можно выполнить любое из следующих действий:
Наведите указатель мыши на граф задания. В нем отображаются основные сведения о выполняемом задании. Выберите граф заданий, и вы увидите этапы и сведения, создаваемые каждым заданием.
Выберите вкладку "Журнал" , чтобы просмотреть часто используемые журналы, включая Driver Stderr, Driver Stdout и сведения о каталоге.
Откройте пользовательский интерфейс журнала Spark и пользовательский интерфейс Apache Hadoop YARN (на уровне приложения), выбрав гиперссылки в верхней части окна.
Доступ к контейнеру хранилища для кластера
В Azure Explorer разверните корневой узел HDInsight , чтобы просмотреть список доступных кластеров HDInsight Spark.
Откройте имя кластера, чтобы просмотреть учетную запись хранения и контейнер по умолчанию для хранилища кластера.
Выберите имя контейнера хранилища, связанное с кластером. В правой области дважды щелкните папку HVACOut . Откройте один из файлов part-, чтобы просмотреть результат работы приложения.
Получите доступ к серверу истории Spark
В Azure Explorer щелкните правой кнопкой мыши имя кластера Spark и выберите команду Открыть пользовательский интерфейс журнала Spark. При появлении запроса введите учетные данные администратора для кластера. Вы указали их при создании кластера.
На панели мониторинга сервера истории Spark используйте имя приложения для поиска приложения, которое вы только что закончили запускать. В приведенном выше коде вы задали имя приложения с помощью
val conf = new SparkConf().setAppName("MyClusterApp")
. Таким образом, имя приложения Spark было MyClusterApp.
Запустите портал Apache Ambari
В Azure Explorer щелкните правой кнопкой мыши имя кластера Spark, а затем откройте портал управления кластерами (Ambari).
При появлении запроса введите учетные данные администратора для кластера. Вы указали их при создании кластера.
Управление подписками Azure
По умолчанию средство HDInsight в Наборе средств Azure для Eclipse перечисляет кластеры Spark из всех подписок Azure. При необходимости можно указать подписки, для которых требуется получить доступ к кластеру.
В Azure Explorer щелкните правой кнопкой мыши корневой узел Azure и выберите пункт "Управление подписками".
В диалоговом окне снимите флажки для подписки, к которой вы не хотите получить доступ, и нажмите кнопку "Закрыть". Вы также можете выбрать выход , если вы хотите выйти из подписки Azure.
Локальное выполнение приложения Spark Scala
Средства HDInsight в Наборе средств Azure для Eclipse можно использовать для локального запуска приложений Spark Scala на рабочей станции. Как правило, эти приложения не нуждаются в доступе к ресурсам кластера, таким как контейнер хранилища, и их можно запускать и тестировать локально.
Предпосылка
При запуске локального приложения Spark Scala на компьютере с Windows вы можете получить исключение, как описано в SPARK-2356. Это исключение возникает из-за отсутствия WinUtils.exe в Windows.
Чтобы устранить эту ошибку, необходимо переместитьWinutils.exe в расположение, например, C:\WinUtils\bin, а затем добавить переменную среды HADOOP_HOME и задать для переменной значение C:\WinUtils.
Запуск локального приложения Spark Scala
Запустите Eclipse и создайте проект. В диалоговом окне "Создать проект" введите следующие варианты и нажмите кнопку "Далее".
В мастере New Project выберите HDInsight Project>Spark для HDInsight: локальный запуск примера (Scala). Затем выберите Далее.
Чтобы предоставить сведения о проекте, выполните шаги 3–6 из предыдущего раздела " Настройка проекта Spark Scala для кластера HDInsight Spark".
Шаблон добавляет пример кода (LogQuery) в папку src , которую можно запустить локально на компьютере.
Щелкните правой кнопкой мыши LogQuery.scala и выберите команду Run As>1 Scala Application. Выходные данные, такие как это, отображаются на вкладке консоли :
Роль только для чтения
Когда пользователи отправляют задание в кластер с разрешением только на чтение, требуются учетные данные Ambari.
Связывание кластера из контекстного меню
Войдите с помощью учетной записи с ролью только для чтения.
В Azure Explorer разверните HDInsight , чтобы просмотреть кластеры HDInsight, которые находятся в вашей подписке. Кластеры, помеченные как Role:Reader, имеют разрешение только для чтения.
Щелкните правой кнопкой мыши кластер с разрешением роли только для чтения. Выберите "Связать этот кластер" из контекстного меню, чтобы связать кластер. Введите имя пользователя и пароль Ambari.
Если кластер связан успешно, HDInsight будет обновлен. Этап кластера будет связан.
Связать кластер, расширив узел 'Задания'
Нажмите узел Задания, всплывет окно Отказано в доступе к заданию кластера.
Щелкните Связать этот кластер, чтобы связать кластер.
Присоединение кластера из окна отправки Spark
Создайте проект HDInsight.
Щелкните правой кнопкой мыши на пакете. Затем выберите "Отправить приложение Spark в HDInsight".
Выберите кластер, который имеет разрешение роли «только чтение» для Cluster Name. Отображается предупреждающее сообщение. Чтобы связать кластер, щелкните Связать этот кластер.
Просмотр учетных записей хранения
Для кластеров с разрешением только для чтения щелкните узел "Учетные записи хранения ", откроется окно "Доступ к хранилищу запрещен".
Для связанных кластеров щелкните узел "Учетные записи хранения" , откроется окно "Доступ к хранилищу запрещен".
Известные проблемы
При использовании Связать кластер рекомендую предоставить учетные данные для хранилища.
Существует два режима отправки заданий. Если указаны учетные данные хранения, пакетный режим будет использоваться для отправки задания. В противном случае будет использоваться интерактивный режим. Если кластер занят, может появиться следующая ошибка.
Eclipse выдаёт ошибку, когда кластер загружен YARN.
См. также
Сценарии
- Использование Apache Spark со средствами бизнес-аналитики. Выполнение интерактивного анализа данных с использованием Spark в HDInsight с помощью средств бизнес-аналитики
- Apache Spark с Машинным обучением: использование Spark в HDInsight для анализа температуры зданий с помощью данных системы HVAC
- Apache Spark и машинное обучение: использование Spark в HDInsight для прогнозирования результатов проверок пищевых продуктов
- Анализ журналов веб-сайтов с помощью Apache Spark в HDInsight
Создание и запуск приложений
- Создание автономного приложения с использованием Scala
- Удаленный запуск заданий с помощью Apache Livy в кластере Apache Spark
Инструменты и расширения
- Создание и отправка приложений Spark Scala с помощью Набора средств Azure для IntelliJ
- Используйте Azure Toolkit for IntelliJ для удаленной отладки приложений Apache Spark через VPN
- Использование Набора средств Azure для IntelliJ для удаленной отладки приложений Apache Spark с помощью SSH
- Использование ноутбуков Apache Zeppelin с кластером Apache Spark в HDInsight
- Ядра, доступные для Jupyter Notebook в кластере Apache Spark в HDInsight
- Использование внешних пакетов с Jupyter Notebook
- Установите Jupyter на свой компьютер и подключитесь к кластеру HDInsight Spark