Облачная платформаAdvanced

Класс не найден после того, как Flume отправляет задания в Spark Streaming

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Проблема

После того, как Flume отправляет задания в Spark Streaming, класс не найден.

Симптом

После того, как код Spark Streaming упакован в JAR‑файл и отправлен в кластер, отображается сообщение об ошибке, указывающее, что класс не найден. Ниже приведённые два метода не помогают:

  1. При отправке задания Spark выполните команду --jars, чтобы указать JAR‑файл класса.
  2. Импортируйте JAR‑файл, содержащий класс, в JAR‑файл Spark Streaming.

Анализ причины

Некоторые JAR‑файлы не могут быть загружены во время выполнения задания Spark, в результате чего класс не найден.

Процедура

  1. Выполните команду --jars, чтобы загрузить пакет зависимости flume-ng-sdk-{version} .jar.
  2. Измените два параметра конфигурации в файле spark-default.conf:

    spark.driver.extraClassPath=$PWD/*: {Add the original value}

    spark.executor.extraClassPath =$PWD/*

  3. Запустите задание успешно. Если возникла ошибка, проверьте, какой JAR не загружен, и выполните шаг 1 и шаг 2 снова.