Не удается найти выход приложения искры

У меня есть кластер, который я могу успешно запустить, по крайней мере, это то, что отображается в веб-интерфейсе, в котором я вижу эту информацию.

URL: spark://Name25:7077
REST URL: spark://Name25:6066 (cluster mode)
Alive Workers: 10
Cores in use: 192 Total, 0 Used
Memory in use: 364.0 GB Total, 0.0 B Used
Applications: 0 Running, 5 Completed
Drivers: 0 Running, 5 Completed
Status: ALIVE

Я использовал команду отправки для запуска своего приложения, если я использую ее таким образом

./bin/spark-submit --class myapp.Main --master spark://Name25:7077 --deploy-mode cluster /home/lookupjar/myapp-0.0.1-SNAPSHOT.jar /home/etud500.csv  /home/

Я получаю это сообщение:

Запуск Spark с использованием протокола отправки приложений REST. Использование профиля log4j по умолчанию Spark: org / apache / spark / log4j-defaults.properties 16/08/31 15:55:16 ИНФОРМАЦИЯ RestSubmissionClient: отправка запроса на запуск приложения в spark: // Name25: 7077. 16/08/31 15:55:27 ПРЕДУПРЕЖДЕНИЕ RestSubmissionClient: невозможно подключиться к серверу spark: // Name25: 7077. Предупреждение: главная конечная точка spark: // Name25: 7077 не была сервером REST. Вместо этого отключаемся к устаревшему шлюзу отправки. 16/08/31 15:55:28 ПРЕДУПРЕЖДЕНИЕ NativeCodeLoader: невозможно загрузить библиотеку native-hadoop для вашей платформы ... с использованием встроенных классов java, где это применимо

и если я использую его таким образом:

./bin/spark-submit --class myapp.Main --master spark://Name25:6066 --deploy-mode cluster /home/lookupjar/myapp-0.0.1-SNAPSHOT.jar /home//etud500.csv  /home/result

Я получаю это сообщение

Запуск Spark с использованием протокола отправки приложений REST. Использование профиля log4j по умолчанию Spark: org / apache / spark / log4j-defaults.properties 16/08/31 16:59:06 ИНФОРМАЦИЯ RestSubmissionClient: отправка запроса на запуск приложения в spark: // Name25: 6066. 16/08/31 16:59:06 ИНФОРМАЦИЯ RestSubmissionClient: Отправка успешно создана как driver-20160831165906-0004. Состояние отправки опроса ... 16/08/31 16:59:06 INFO RestSubmissionClient: Отправка запроса на состояние отправки driver-20160831165906-0004 в spark: // Name25: 6066. 16/08/31 16:59:06 ИНФОРМАЦИЯ RestSubmissionClient: Состояние драйвера driver-20160831165906-0004 теперь РАБОТАЕТ. 16/08/31 16:59:06 ИНФОРМАЦИЯ RestSubmissionClient: Драйвер запущен на worker-20160831143117-10.0.10.48-38917 на рабочем столе worker-20160831143117-10.0.10.48-38917 в 10.0.10.48:38917. 16/08/31 16:59:06 ИНФОРМАЦИЯ RestSubmissionClient: Сервер ответил CreateSubmissionResponse: {"action": "CreateSubmissionResponse", "message": "Драйвер успешно отправлен как драйвер-20160831165906-0004", "serverSparkVersion": "2.0. 0 "," submissionId ":" driver-20160831165906-0004 "," success ": true}

Я думаю, что это успех, но мое приложение должно иметь 3 выхода по заданному пути (/ home / result), потому что я использовал в своем коде:

path =args [1];
rdd1.saveAsTextFile(path+"/rdd1");
rdd2.saveAsTextFile(path+"/rdd2");
rdd3.saveAsTextFile(path+"/rdd3");

Вопрос 1: Почему меня просят использовать «spark: // Name25: 6066», а не «spark: // Name25: 7077»? потому что согласно сайту Spark мы используем: 7077

Вопрос 2: Если это указывает на успешную отправку и завершение заявок, почему я не могу найти 3 выходных папки?


person asma    schedule 31.08.2016    source источник
comment
Проверьте, используется ли порт 7077 какой-либо другой службой, и попробуйте отправить искру с deploy-mode как client. проверьте мастер искры в веб-интерфейсе. masterip:8080   -  person Ravikumar    schedule 31.08.2016
comment
как я могу проверить, используется ли 7077 или нет?   -  person asma    schedule 31.08.2016
comment
Какую ОС (операционную систему) вы используете?   -  person Ravikumar    schedule 31.08.2016
comment
я использую Linux на удаленных машинах   -  person asma    schedule 31.08.2016
comment
Вы можете попробовать это netstat -an | grep 7077 и попробовать отправить искру с --deploy-mode client.   -  person Ravikumar    schedule 31.08.2016
comment
Почему вы предлагаете использовать клиентский режим? Скажите, пожалуйста   -  person asma    schedule 31.08.2016
comment
когда я использовал netstat ... '' 'у меня есть список, это образец (tcp 0 0 :: ffff: 10.0.10.45: 7077 ::: * LISTEN tcp 0 0 :: ffff: 10.0.10.45: 7077: : ffff: 10.0.10.45: 53159 УСТАНОВЛЕН tcp 0 0 :: ffff: 10.0.10.45: 7077 :: ffff: 10.0.10.47: 42932 УСТАНОВЛЕН   -  person asma    schedule 31.08.2016
comment
Поскольку в режиме client запускается искровый драйвер на машине, на которую вы отправляете искру, а в режиме cluster можно запускать искровый драйвер на любом из узлов. Для получения дополнительной информации вы можете прочитать здесь.   -  person Ravikumar    schedule 31.08.2016
comment
Я использовал клиентский режим, у меня было несколько ошибок, это первая: ((16.08.31 19:47:49 INFO CoarseGrainedSchedulerBackend $ DriverEndpoint: Запуск задачи 545 по идентификатору исполнителя: 16 имя хоста: 10.0.10.46. 16 / 08/31 19:47:49 ПРЕДУПРЕЖДЕНИЕ TaskSetManager: потеряна задача 244.3 на этапе 2.0 (TID 532, 10.0.10.46): java.lang.OutOfMemoryError: ошибка при вызове spill () в org.apache.spark.shuffle.sort. ShuffleExternalSorter @ 5786b516: Aucun размещается в пространстве по адресу org.apache.spark.memory.TaskMemoryManager.acquireExecutionMemory (TaskMemoryManager.java:179)   -  person asma    schedule 31.08.2016
comment
Я думаю, ваше приложение было запущено, ошибка явно говорит о том, что на одной из ваших рабочих машин, на которой была запущена задача, не хватило памяти для вычислений. Вы проверили Spark Web Ui, и я думаю, что ваше приложение работало какое-то время. Вам необходимо настроить параметры памяти.   -  person Ravikumar    schedule 31.08.2016
comment
Мне нужно использовать туннель, чтобы иметь возможность запускать веб-интерфейс, поэтому, если я использую ssh -L 8081: 192.17.0.17: 8081 name @ ip, я смогу видеть только Master UI (если я использую ./sbin/start- master.sh '', но я не вижу статус заданий в главном пользовательском интерфейсе   -  person asma    schedule 31.08.2016
comment
поэтому, если я использую ssh -L 4040: 192.17.0.17: 4040 name @ ip, я смогу увидеть только искровой пользовательский интерфейс (если я использую ./bin/spark-shell '')   -  person asma    schedule 31.08.2016
comment
то, что я хочу сказать, это как я могу увидеть статус моей работы   -  person asma    schedule 31.08.2016
comment
По умолчанию порт 8080 предназначен для главного веб-интерфейса Spark, а порт 8081 - для рабочего интерфейса, если вы не изменили конфигурацию. При туннелировании используйте 8080 вместо 8081. Я не могу сильно помочь в этом, так как проблемы, с которыми вы сталкиваетесь, более специфичны для вас, обновите свой пост более конкретным вопросом, чтобы люди здесь могли вам помочь.   -  person Ravikumar    schedule 31.08.2016
comment
хорошо, спасибо, я ценю   -  person asma    schedule 31.08.2016


Ответы (1)


Отправка с использованием 6066 НЕ означает, что ваша работа успешно завершена. Он просто отправляет запрос, задание выполняется в фоновом режиме. Вы должны проверить пользовательский интерфейс искры на статус завершения работы.

Если задание завершено и выходные файлы сгенерированы вашим заданием, вы можете проверить свой файл, используя:

hadoop dfs -ls <path>/rdd1
person voldy    schedule 31.08.2016
comment
hadoop dfs -ls ‹path› / rdd1 используется, если мы используем hdfs? потому что я не использую систему хранения - person asma; 31.08.2016
comment
какой порт я должен использовать для проверки веб-интерфейса Spark для поиска работы? потому что теперь я использую master: 8081 и не могу найти работу - person asma; 31.08.2016