2016-01-11 14 views
4

Прочитав эту question, я хотел бы задать дополнительные вопросы:Понимать Spark: менеджер кластера, мастер и узлы драйверов

  1. Менеджер кластера является затянувшимся сервисом, на котором узел оно работает?
  2. Возможно ли, что узлы Master и Driver будут одинаковыми? Я полагаю, что должно существовать правило, в котором говорится, что эти два узла должны быть разными?
  3. В случае сбоя узла драйвера, кто несет ответственность за повторное запуск приложения? и что будет точно? например, как будут взаимодействовать узлы «Ведущий узел», «Менеджер кластеров» и «Рабочие» (если они есть) и в каком порядке?
  4. Как и в предыдущем вопросе: В случае сбоя главного узла, что произойдет точно и кто несет ответственность за восстановление после сбоя?

ответ

6

Менеджер кластера является затянувшийся сервис, на котором узел она работает?

менеджер Кластера Мастер процесс в режиме Спарк автономный. Его можно запустить где угодно: ./sbin/start-master.sh, в YARN это будет диспетчер ресурсов.

Возможно ли, что узлы Master и Driver будут одинаковыми? Я полагаю, что должно существовать правило, в котором говорится, что эти два узла должны быть разными?

Master находится в кластере и Driver это для каждого приложения. Для автономных/нитевых кластеров Spark в настоящее время поддерживает два режима развертывания.

  1. В режиме клиента, драйвер запускается в том же процессе, что и клиент, который подает заявку.
  2. В режиме кластера, однако, для автономного драйвера запускается из одного из работника для пряжи внутри главного узла приложения, а клиентский процесс выходит, как только он выполняет свою ответственность подавая заявку, не дожидаясь завершения приложения.

Если поданное с --deploy-mode client в главном узле, как Master и водитель будет находиться на том же узле. проверить deployment of Spark application over YARN

Incase где узел Driver выходит из строя, который отвечает за ре-запуске программы? и что будет точно? например, как будут взаимодействовать узлы «Ведущий узел», «Менеджер кластеров» и «Рабочие» (если они есть) и в каком порядке?

Если водитель не все исполнители задача будет убита для того, представленной/запущенного приложения свечи.

Включает, когда главный узел выходит из строя, что произойдет точно и кто несет ответственность за восстановление после сбоя?

Ошибки главного узла обрабатываются двумя способами.

  1. Standby Masters с Zookeeper:

    Использование Zookeeper обеспечить лидера выборов и некоторое государственное хранение, вы можете запустить несколько Masters в кластере, подключенного к той же например Zookeeper. Один из них будет избран «лидером», а остальные останутся в режиме ожидания. Если текущий лидер умрет, будет выбран другой Мастер , восстановить состояние старого Мастера, а затем возобновить планирование . Весь процесс восстановления (с момента падения первого лидера ) должен длиться от 1 до 2 минут. Обратите внимание, что эта задержка влияет только на планирование новых приложений - приложения, которые уже запущены во время переключения на Мастер, не затрагиваются. check here for configurations

  2. одноузловых Восстановление с локальной файловой системы:

    Zookeeper это лучший способ пойти на высокой доступности производства на уровне, но если вы просто хотите, чтобы иметь возможность перезапустить Мастер, если он опускается, режим FILESYSTEM может позаботиться об этом. Когда регистры и Workers регистрируются, они имеют достаточное количество состояний, записанных в предоставленный каталог , чтобы их можно было восстановить после перезапуска процесса Master . check here for conf and more details

4

Менеджер кластера является затянувшийся сервис, на котором узел она работает?

Менеджер кластера - это просто менеджер ресурсов, то есть процессоров и оперативной памяти, которые 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), и если это произойдет, он продолжит обработку.

 Смежные вопросы

  • Нет связанных вопросов^_^