Узел имен Hadoop 2.0, вторичный узел и узел контрольной точки для высокой доступности
После прочтения документации Apache Hadoop возникает небольшая путаница в понимании обязанностей вторичного узла и узла контрольной точки.
Я ясно понимаю роль и обязанности Наменода:
- NameNode хранит изменения в файловой системе в виде журнала, добавляемого к собственному файлу файловой системы, редактирует. Когда NameNode запускается, он читает состояние HDFS из файла изображения, fsimage, а затем применяет изменения из файла журнала изменений. Затем он записывает новое состояние HDFS в fsimage и начинает обычную работу с пустым файлом редактирования. Поскольку NameNode объединяет fsimage и редактирует файлы только во время запуска, файл журнала редактирования со временем может стать очень большим на занятом кластере. Другим побочным эффектом файла редактирования большего размера является то, что следующий перезапуск NameNode занимает больше времени.
Но у меня возникла небольшая путаница в понимании обязанностей по наменоданию Secondary & Check Point.
Вторичный NameNode:
- Вторичный NameNode периодически объединяет файлы журнала fsimage и правки и сохраняет размер журнала правок в пределах лимита. Обычно он запускается на другом компьютере, чем основной NameNode, поскольку его требования к памяти находятся в том же порядке, что и основной NameNode.
Узел контрольной точки:
- Узел Checkpoint периодически создает контрольные точки пространства имен. Он загружает fsimage и редактирует из активного NameNode, объединяет их локально и загружает новое изображение обратно в активный NameNode. Узел Checkpoint обычно работает на компьютере, отличном от NameNode, поскольку его требования к памяти находятся в том же порядке, что и NameNode. Узел Checkpoint запускается командой bin / hdfs namenode -checkpoint на узле, указанном в файле конфигурации.
Кажется, что ответственность между Secondary namenode и Checkpoint узел не ясна. Оба работают над правками. Так кто же в конце концов модифицирует?
С другой стороны, я создал две ошибки в jira, чтобы устранить двусмысленность в понимании этих концепций.
issues.apache.org/jira/browse/HDFS-8913
issues.apache.org/jira/browse/HDFS-8914
1 ответ
NameNode(Primary)
NameNode хранит метаданные HDFS. Состояние HDFS хранится в файле с именем fsimage и является основой метаданных. Во время выполнения изменения просто записываются в файл журнала, который называется edits. При следующем запуске NameNode состояние читается из fsimage, к нему применяются изменения из правок, а новое состояние записывается обратно в fsimage. После этого изменения очищены и содержат теперь готовые к новым записям журнала.
Узел контрольной точки
Узел контрольной точки был введен для устранения недостатков NameNode. Изменения просто записываются в правки и не объединяются с fsimage во время выполнения. Если NameNode работает некоторое время, изменения становятся огромными, а следующий запуск займет еще больше времени, поскольку к состоянию необходимо применить больше изменений, чтобы определить последнее состояние метаданных.
Узел контрольной точки периодически извлекает fsimage и редактирует из NameNode и объединяет их. Полученное состояние называется контрольной точкой. После этого загружает результат в NameNode.
Был также похожий тип узла, называемый "Secondary Node", но у него нет функции "Upload to NameNode". Поэтому NameNode необходимо получить состояние из вторичного NameNode. Это также было предметом обсуждения, поскольку имя предполагает, что вторичный NameNode принимает запрос в случае сбоя NameNode, что не соответствует действительности.
Резервный узел
Узел резервного копирования обеспечивает те же функциональные возможности, что и узел контрольных точек, но синхронизируется с узлом NameNode. Ему не нужно периодически извлекать изменения, потому что он получает поток изменений файловой системы. из NameNode. Он хранит текущее состояние в памяти и просто нужно сохранить его в файл изображения, чтобы создать новую контрольную точку.
NameNode- Он также известен как мастер-узел. Namenode хранит метаданные, т.е. количество блоков, их местоположение, реплики и другие детали. Эти метаданные доступны в памяти в мастере для более быстрого поиска данных. NameNode поддерживает и управляет подчиненными узлами и назначает им задачи. Он должен быть развернут на надежном оборудовании, поскольку он является центральным элементом HDFS. Namenode хранит свое пространство имен, используя два файла:
FsImage: FsImage - это "файл изображения". Он содержит все пространство имен файловой системы и хранится в виде файла в локальной файловой системе namenode.
EditLogs: он содержит все последние изменения, внесенные в файловую систему относительно самого последнего FsImage.
Узел контрольной точки - узел контрольной точки - это узел, который периодически создает контрольные точки пространства имен. Узел Checkpoint в Hadoop сначала загружает fsimage и редактирует с активного Namenode. Затем он объединяет их (FsImage и редактирует) локально и, наконец, загружает новое изображение обратно в активный NameNode. Узел контрольной точки хранит последнюю контрольную точку в каталоге. Он структурирован так же, как каталог Namenode. Это позволяет контрольному изображению быть доступным для чтения наменоде.
Узелрезервного копирования - узелрезервного копирования обеспечивает те же функциональные возможности контрольной точки, что и узел контрольной точки. В Hadoop узел Backup хранит в памяти актуальную копию пространства имен файловой системы, которая всегда синхронизируется с активным состоянием NameNode. Узлу резервного копирования не нужно загружать fsimage и редактировать файлы с активного узла NameNode для создания контрольной точки, как это потребуется для узла Checkpoint или Secondary Namenode, поскольку он уже имеет современное состояние состояния пространства имен в памяти. Процесс создания контрольной точки резервного узла более эффективен, поскольку ему нужно только сохранить пространство имен в локальном файле fsimage и сбросить изменения. Один узел резервного копирования поддерживается NameNode одновременно. Узлы контрольных точек не могут быть зарегистрированы, если используется резервный узел.