Я установил кластер EC2 с помощью Spark. Все работает, все ведущие/ведомые работают и работают.
Я пытаюсь отправить образец задания (SparkPi). Когда я ssh кластер и отправлю его оттуда - все работает нормально. Однако, когда драйвер создается на удаленном хосте (мой ноутбук), он не работает. Я пробовал оба режима для --deploy-mode
:
--deploy-mode=client
:
Из моего ноутбука:
./bin/spark-submit --master spark://ec2-52-10-82-218.us-west-2.compute.amazonaws.com:7077 --class SparkPi ec2test/target/scala-2.10/ec2test_2.10-0.0.1.jar
Результаты следующих неопределенных предупреждений/ошибок:
WARN TaskSchedulerImpl: начальное задание не приняло никаких ресурсов; проверьте свой пользовательский интерфейс кластера, чтобы убедиться, что работники зарегистрированы и имеют достаточная память 15/02/22 18:30:45
ОШИБКА SparkDeploySchedulerBackend: попросил удалить несуществующего исполнителя 0 15/02/22 18:30:45
ОШИБКА SparkDeploySchedulerBackend: предлагается удалить несуществующий исполнитель 1
... и неудачные драйверы - в интерфейсе Spark Web "Завершены драйверы" с "State = ERROR".
Я попытался передать ограничения для ядер и памяти, чтобы отправить script, но это не помогло...
--deploy-mode=cluster
:
Из моего ноутбука:
./bin/spark-submit --master spark://ec2-52-10-82-218.us-west-2.compute.amazonaws.com:7077 --deploy-mode cluster --class SparkPi ec2test/target/scala-2.10/ec2test_2.10-0.0.1.jar
Результат:
.... Драйвер успешно представлен как драйвер-20150223023734-0007... ожидание перед началом опроса для состояния драйвера... мастер опроса для Состояние драйвера Состояние драйвера-20150223023734-0007 - Исключение ERROR из кластера было: java.io.FileNotFoundException: Файл Файл:/Главная/олег/искра/spark12/ec2test/цель/ scala -2,10/ec2test_2.10-0.0.1.jar не существует. java.io.FileNotFoundException: Файл Файл:/Главная/олег/искра/spark12/ec2test/цель/scala -2,10/ec2test_2.10-0.0.1.jar не существует. в org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:397) в org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:251) на org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:329) в org.apache.spark.deploy.worker.DriverRunner.org $апаша $искровым $$ развернуть рабочий $DriverRunner $$ downloadUserJar (DriverRunner.scala: 150) в org.apache.spark.deploy.worker.DriverRunner $$ Анон $1.run(DriverRunner.scala: 75)
Итак, я был бы признателен за любые указатели на то, что происходит не так, и на некоторые рекомендации по развертыванию заданий с удаленного клиента. Спасибо.
UPDATE: Поэтому для второй проблемы в режиме кластера файл должен быть глобально видимым для каждого кластера node, поэтому он должен находиться где-то в доступном месте. Это решение IOException, но приводит к той же проблеме, что и в клиентском режиме.