Менеджер кластера является затянувшийся сервис, на котором узел она работает?
Менеджер кластера - это просто менеджер ресурсов, то есть процессоров и оперативной памяти, которые SchedulerBackends использует для запуска задач. Диспетчер кластеров ничего не делает для Apache Spark, но предлагает ресурсы, и после запуска исполнителей Spark они напрямую взаимодействуют с драйвером для запуска задач.
Вы можете создать автономный мастер-сервер, выполнив:
./sbin/start-master.sh
Может быть запущен в любом месте.
Чтобы запустить приложение на Спарк кластера
./bin/spark-shell --master spark://IP:PORT
Возможно ли, что Мастер и узлы драйвера будет та же машина? Я предполагаю, что должно существовать правило, в котором говорится, что эти два узла должны быть разными?
В автономном режиме, когда вы запускаете свою машину, запускается JVM. Ваш SparK Master запустится и на каждой машине запустится JVM Worker, и они будут регистрироваться у Spark Master. Оба являются диспетчерами ресурсов. Когда вы запускаете приложение или отправляете свое приложение в режиме кластера, драйвер запускается везде, где вы делаете ssh, чтобы запустить это приложение. Драйвер JVM свяжется с SparK Master для исполнителей (Ex) и в автономном режиме. Работник запустит Ex. Итак, Spark Master - для каждого кластера, а JVM для каждого приложения.
В случае неудачи узла драйвера, ответственного за повторное запуск приложения? и что будет точно? т. Е. Как будут задействованы узлы Master, Cluster Manager и Workers (если они есть) и в каком порядке?
Если Ex JVM выйдет из строя, рабочий JVM запустит Ex и когда JVM Worker будет поврежден, Spark Master запустит их. И с Спарк автономного кластера с режимом кластера развертывания, можно также указать --supervise, чтобы убедиться, что водитель автоматически перезапускается, если он терпит неудачу с ненулевой выходной code.Spark Master начнет драйвер JVM
Как и в предыдущем вопросе: В случае сбоя главного узла что произойдет точно и кто несет ответственность за восстановление после сбоя?
Ошибка при работе с мастером приведет к тому, что исполнители не смогут связаться с ним. Таким образом, они перестанут работать. Неспособность мастера заставит водителя не общаться с ним для статуса работы. Таким образом, ваше приложение не удастся. Основные потери будут признаны работающими приложениями, но в противном случае они должны продолжать работать более или менее, так как ничего не произошло с двумя важными исключениями:
1.приложение не сможет закончить элегантным способом.
2.if Spark Master не работает. Рабочий попытается перерегистрироватьWithMaster. Если это не удастся многократно, рабочие просто откажутся.
reregisterWithMaster() - Перерегистрируйте с активным хозяином, с которым этот рабочий общался. Если его нет, значит, этот рабочий все еще загружается и еще не установил соединение с мастером, и в этом случае мы должны перерегистрироваться со всеми мастерами. Это важно перерегистрировать только с активным мастером во время failures.worker безоговорочно пытается перерегистрацию всех мастеров, будет может возникнуть гонки condition.Error подробно в СПАРК-4592:
В этот момент долгого бега приложения не смогут продолжить обработку, но это все равно не должно приводить к немедленному сбою. Вместо этого приложение будет ждать возвращения мастера в режиме онлайн (восстановление файловой системы) или контакта нового лидера (режим Zookeeper), и если это произойдет, он продолжит обработку.