Устранение неполадок в Apache Spark с помощью Azure HDInsight

Ознакомьтесь с основными проблемами, которые возникают при работе с полезными данными Apache Spark в Apache Ambari, и способами их решения.

Как настроить приложение Apache Spark с помощью Apache Ambari в кластерах?

Можно настроить значения конфигурации Spark, чтобы избежать исключения OutofMemoryError в приложении Apache Spark. На этапах ниже показаны значения конфигурации Spark по умолчанию в Azure HDInsight.

  1. Войдите в Ambari по адресу https://CLUSTERNAME.azurehdidnsight.net с помощью учетных данных кластера. На начальном экране показана панель мониторинга с общими сведениями. Между HDInsight 3.6 и 4.0 существуют небольшие косметические различия.

  2. Перейдите в раздел Spark2 > Configs.

    Выбор вкладки "Конфигурации"

  3. В списке конфигураций выберите и разверните Custom-spark2-defaults.

  4. Найдите параметр значения, который необходимо настроить, например spark.executor.memory. В этом случае значение 9728m слишком высокое.

    Выбор конфигурации custom-spark-defaults

  5. Задайте для этого параметра рекомендуемое значение. Рекомендуется использовать значение 2048m.

  6. Сохраните это значение, а затем сохраните конфигурацию. Щелкните Сохранить.

    Изменение значения на 2048m

    Запишите примечание об изменениях конфигурации, а затем нажмите кнопку Сохранить.

    Примечание об изменениях

    Если нужно будет пересмотреть какую-либо конфигурацию, вы получите оповещение. Проверьте элементы, а затем нажмите кнопку Proceed Anyway (Продолжить).

    Нажатие кнопки "Proceed Anyway" (Продолжить)

  7. При каждом сохранении конфигурации вам будет предложено перезапустить службу. Нажмите кнопку Перезапустить.

    Нажмите "Перезапустить"

    Подтвердите перезапуск.

    Нажатие кнопки "Confirm Restart All" (Подтвердить перезапуск всех)

    Вы можете просмотреть запущенные процессы.

    Просмотр запущенных процессов

  8. Вы можете добавить конфигурации. В списке конфигураций выберите Custom-spark2-defaults, а затем щелкните Добавить свойство.

    Выбор "Добавить свойство"

  9. Определите новое свойство. Вы можете определить отдельное свойство с помощью диалогового окна для определенных параметров, например тип данных. Или вы можете определить несколько свойств с одним определением на строку.

    В этом примере свойство spark.driver.memory определяется со значением 4 ГБ.

    Определение нового свойства

  10. Сохраните конфигурацию и перезапустите службу, как описано на шагах 6 и 7.

Эти изменения применяются на уровне кластера, но их можно переопределить при отправке задания Spark.

Как настроить приложение Apache Spark с помощью Jupyter Notebook в кластерах?

Укажите конфигурации Spark в допустимом формате JSON в первой ячейке Jupyter Notebook после директивы %%configure. При необходимости измените фактические значения:

Добавление конфигурации

Как настроить приложение Apache Spark с помощью Apache Livy в кластерах?

Отправьте приложение Spark в Livy с помощью клиента REST, например cURL. Используйте команду, аналогичную приведенной ниже. При необходимости измените фактические значения:

curl -k --user 'username:password' -v -H 'Content-Type: application/json' -X POST -d '{ "file":"wasb://container@storageaccountname.blob.core.windows.net/example/jars/sparkapplication.jar", "className":"com.microsoft.spark.application", "numExecutors":4, "executorMemory":"4g", "executorCores":2, "driverMemory":"8g", "driverCores":4}'  

Как настроить приложение Apache Spark с помощью spark-submit в кластерах?

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

spark-submit --master yarn-cluster --class com.microsoft.spark.application --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4 /home/user/spark/sparkapplication.jar

Дополнительные материалы

Отправка заданий Apache Spark в кластерах HDInsight

Дальнейшие действия

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