Hadoop Datanode, namenode, вторичный-namenode, трекер работы и трекер задач - PullRequest
11 голосов
/ 19 октября 2011

Я новичок в hadoop, поэтому у меня есть некоторые сомнения.Если мастер-узел дает сбой, что случилось с кластером hadoop?Можем ли мы восстановить этот узел без потерь?Можно ли сохранить вторичный мастер-узел для автоматического переключения на мастер при отказе текущего?

У нас есть резервная копия наменода (вторичного наменода), поэтому мы можем восстановить наменоде из вторичного наменода в случае сбоя.Например, как мы можем восстановить данные в датоде при сбое?Вторичный наменоде - это резервная копия наменоде, только не на датоде, верно?Если перед завершением задания произошел сбой узла, поэтому в средстве отслеживания заданий есть ожидающие задания, будет ли это задание продолжаться или перезапускаться с первого в свободном узле?

Как мы можем восстановить все данные кластера, если что-то случится?

И мой последний вопрос, можем ли мы использовать программу на C в Mapreduce (например, Bubble sort in mapreduce)?

Заранее спасибо

Ответы [ 3 ]

21 голосов
/ 20 мая 2013

Хотя, уже слишком поздно, чтобы ответить на ваш вопрос, но только это может помочь другим ..

Прежде всего позвольте мне представить вам Узел вторичного имени:

Содержит изображение пространства имен, редактирует резервные копии файлов журнала в течение последнего часа (настраивается).И его работа заключается в объединении последнего Name Node NameSpaceImage и редактировании файлов журналов для загрузки обратно на Name Node в качестве замены старого.Наличие вторичного NN в кластере не обязательно.

Теперь перейдем к вашим проблемам ..

  • Еслимастер-узел терпит неудачу, что случилось с кластером hadoop?

Поддержка ответа Frail , Да, у hasoop есть одна точка отказа, так что вся вашатекущая задача, такая как Map-Reduce или любая другая, использующая отказавший главный узел, остановится.Весь кластер, включая клиента, перестанет работать.

  • Можем ли мы восстановить этот узел без потерь?

Это гипотетически , без потерь это наименее возможно, поскольку все данные (блочные отчеты) будут потеряны, которые отправлены узлами данных узлу имени после последнего резервного копирования, принятого вторичным узлом имени.Почему я упомянул меньше всего, потому что, если имя узла перестало работать сразу после успешного резервного копирования, выполняемого вторичным узлом имени, тогда он находится в безопасном состоянии.

  • Возможно лисохранить вторичный мастер-узел для автоматического переключения на мастер при отказе текущего?

Это возможно даже администратору (пользователю).А для его автоматического переключения необходимо написать собственный код из кластера, код для мониторинга кластера, который будет разумно конфигурировать вторичный узел имени и перезапустить кластер с новым адресом узла имени.

  • У нас есть резервная копия наменода (вторичного наменода), поэтому мы можем восстановить наменоде из вторичного наменода, если он не работает.Как это, Как мы можем восстановить данные в датоде при сбое в датодале?

Это примерно коэффициент репликации , у нас есть 3 (по умолчанию, как рекомендуется, настраиваемые) реплики каждого блока файлов все в разных узлах данных.Таким образом, на случай сбоя у нас есть 2 резервных узла данных.Позже узел Name создаст еще одну реплику данных, в которых содержался сбойный узел данных.

  • Вторичный наменод - это резервная копия только наменоде, а не на datenode, верно?

Справа.Он просто содержит все метаданные узлов данных, такие как адрес узла данных, свойства, включая блочный отчет каждого узла данных.

  • Если узел завершился неудачей до завершениязадание, так что в устройстве отслеживания заданий есть ожидание, это задание продолжается или перезапускается с первого на свободном узле?

HDFS принудительно попытается продолжитьработа.Но опять же, это зависит от коэффициента репликации, осведомленности о стойке и другой конфигурации , выполненной администратором.Но если следовать рекомендациям Hadoop о HDFS, это не даст сбоя.JobTracker получит реплицированный адрес узла в продолжение.

  • Как мы можем восстановить все данные кластера, если что-нибудь случится?

Путем перезапуска.

  • И мой последний вопрос, можем ли мы использовать программу на C в Mapreduce (например, Bubble sort in mapreduce)?

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

Я только что далпопыткаНадеюсь, что это поможет вам так же, как и другим.

* Предложения / улучшения приветствуются. *

14 голосов
/ 19 октября 2011

В настоящее время кластер hadoop имеет одну точку отказа, которая называется namenode.

А по поводу вторичного узла isssue (из apache wiki ):

Термин «вторичный узел имени» несколько вводит в заблуждение. Это не имя-узел в том смысле, что узлы данных не могут подключиться к вторичному имя-узел, и ни в коем случае он не может заменить основной узел имени в случай его отказа.

Единственная цель вторичного узла имени - выполнять периодические контрольно-пропускные пункты. Вторичный узел имени периодически загружает текущий имя узла и редактирует файлы журнала, объединяет их в новое изображение и загружает новое изображение обратно в (основной и единственный) name-узел. См. Руководство пользователя.

Так что, если имя узла не удается, и вы можете перезапустить его на том же физическом узел, то нет необходимости выключать узлы данных, просто имя узла нужно перезапустить. Если вы не можете использовать старый узел больше, вы будете Нужно скопировать последнее изображение куда-нибудь еще. Последнее изображение может быть найден либо на узле, который раньше был основным до сбоя, если имеется в наличии; или на вторичном имени-узле. Последний будет последний контрольный пункт без последующего редактирования журналов, то есть наиболее последние модификации пространства имен могут отсутствовать там. Вы также в этом случае необходимо перезапустить весь кластер.

Есть хитрые способы преодолеть эту единственную точку отказа. Если вы используете дистрибутив cloudera, один из способов объяснил здесь . В дистрибутиве Mapr есть другой способ для обработки этого пространства.

Наконец, вы можете использовать каждый отдельный язык программирования для написания карты, уменьшенной по сравнению с hadoop streaming .

0 голосов
/ 18 сентября 2016

Хотя, уже слишком поздно, чтобы ответить на ваш вопрос, но только это может помочь другим. Сначала мы обсудим роль демонов Hadoop 1.X, а затем ваши проблемы.

1. Какова роль вторичного имени Узел это не совсем резервный узел. он читает журналы редактирования и периодически создает обновленный файл fsimage для имени узла. он периодически получает метаданные с узла имени и сохраняет их и использует при сбое узла имени. 2. какова роль имени узла это менеджер всех демонов. его мастер JVM, который работает на главном узле. он взаимодействует с узлами данных.

3. какова роль трекера работы он принимает работу и распределяет ее по трекерам для обработки на узлах данных. это называется процессом карты

4. какова роль трекеров задач он выполнит программу, предоставленную для обработки существующих данных в узле данных. этот процесс называется картой.

ограничения hadoop 1.X

  1. единичная точка отказа который является узлом имени, поэтому мы можем поддерживать высококачественное оборудование для узла имени. если имя узла не удается, все будет недоступно

* Решения 1028 * Решением для единой точки отказа является hadoop 2.X, который обеспечивает высокую доступность.

высокая доступность с hadoop 2.X

теперь ваши темы ....

Как мы можем восстановить все данные кластера, если что-нибудь случится? если кластер не работает, мы можем перезапустить его.

Если какой-либо узел вышел из строя до завершения задания, то есть в задании отслеживания заданий есть ожидание, будет ли это задание продолжаться или перезапускаться с первого на свободном узле? у нас есть 3 реплики данных по умолчанию (я имею в виду блоки), чтобы получить высокую доступность, это зависит от администратора, сколько копий он установил ... так что трекеры заданий будут продолжать с другой копией данных на другом узле данных

можем ли мы использовать программу на C в Mapreduce (например, Bubble sort в mapreduce)? в основном mapreduce - это механизм исполнения, который решает или обрабатывает проблему больших данных распределенным образом (хранение плюс обработка). мы выполняем обработку файлов и все другие основные операции, используя программирование mapreduce, поэтому мы можем использовать любой язык, на котором мы можем обрабатывать файлы в соответствии с требованиями.

архитектура hadoop 1.X hadoop 1.x имеет 4 основных демона

Я только что попробовал. Надеюсь, это поможет вам так же, как и другим.

Предложения / улучшения приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...