Я экспериментирую и отправляюсь в поиски в течение многих часов, без везения.
У меня есть приложение для искрообразования, которое отлично работает в локальном искровом кластере. Теперь мне нужно развернуть его на cloudera 5.4.4. Мне нужно иметь возможность запустить его, постоянно ли работать в фоновом режиме и быть в состоянии остановить его.
Я пробовал это:
$ spark-submit --master yarn-cluster --class MyMain my.jar myArgs
Но он просто печатает эти строки бесконечно.
15/07/28 17:58:18 INFO Client: Application report for application_1438092860895_0012 (state: RUNNING)
15/07/28 17:58:19 INFO Client: Application report for application_1438092860895_0012 (state: RUNNING)
Номер вопроса 1: поскольку это потоковое приложение, оно должно запускаться непрерывно. Итак, как мне запустить его в фоновом режиме? Все примеры, которые я могу найти для подачи искровых работ на пряжу, похоже, предполагают, что приложение будет выполнять некоторую работу и прекратить работу, и поэтому вы хотите запустить ее на переднем плане. Но это не так для потоковой передачи.
Далее... в этот момент приложение, похоже, не работает. Я полагаю, что это может быть ошибкой или неправильной конфигурацией с моей стороны, поэтому я попытался посмотреть в журналах, чтобы увидеть, что происходит:
$ yarn logs -applicationId application_1438092860895_012
Но это говорит мне:
/tmp/logs/hdfs/logs/application_1438092860895_0012does not have any log files.
Итак вопрос номер 2: Если приложение работает, почему у него нет файлов журналов?
Так что в итоге мне просто пришлось убить его:
$ yarn application -kill application_1438092860895_012
Что вызывает вопрос номер 3: предполагая, что я могу в конечном итоге запустить приложение и запустить его в фоновом режиме, является ли "приложение пряжи -kill" предпочтительным способом его остановки?