Резервное копирование и восстановление метаданных MWS Data Slon
При работе с Big Data резервное копирование выполняется только для критически важных данных, а не для всего объема данных, поскольку размер этих данных может достигать нескольких петабайт. Однако, мы рекомендуем настроить резервное копирование метаданных кластера, а именно:
- метаданных файловой системы HDFS
- метаданных файловой системы Ozone
- метаданных Zookeeper
- баз данных Hive, Ranger
Резервное копирование этих даных позволяет восстановить кластер после возможных логических ошибок или сбоев в конфигурации, используя сохраненные копии. В случае критических сбоев резервные копии обеспечат возможность восстановления инфраструктуры и продолжения работы с существующими данными без потерь.
Резервное копирование метаданных HDFS
Резервное копирование HDFS включает в себя создание и бэкапирования последнего fsimage
. Для создания резервной копии метаданных HDFS необходимо выполнить ряд действий:
Примечание : Эти шаги включают перевод HDFS в безопасый режим (режим только для чтения). При запуске NameNode считывает файл fsimage
и фиксирует его в памяти. Если узлы JournalNodes работают, и присутствуют файлы редактирования, все правки, более новые, чем файл fsimage
, также применяются. Если узлы JournalNodes недоступны, возможна потеря всех данных, переданных в промежуточный период.
1) Стать суперпользователем HDFS:
su - hdfs
2) Выполнить команду kinit для аутентификации и получения временного ключа в среде, защищенной Kerberos :
kinit -kt /etc/security/keytabs/hdfs.headless.keytab hdfs@EXAMPLE.COM
3) Перевести кластер в безопасный режим:
hdfs dfsadmin -safemode enter
4) Создать новый файл fsimage
, объединив все оставшиеся журналы правок с последним fsimage
, сохранив полное состояние в новом файле:
hdfs dfsadmin -saveNamespace
fsimage
файл из HDFS в каталог на локальной файловой системе. Этот файл можно сохранить для резервного копирования. Сделайте одну резервную копию файла VERSION
. Его не нужно регулярно резервировать, поскольку он не изменяется, но он важен, поскольку содержит идентификатор кластера и другие сведения. hdfs dfsadmin -fetchImage <local_dir>
6) Выйти из безопасного режима:
hdfs dfsadmin -safemode leave
Восстановление метаданных HDFS из резервной копии
В этом разделе описывается восстановление метаданных узла NameNode. Если узел NameNode и вторичный узел NameNode внезапно выйдут из сети, вы можете восстановить NameNode, выполнив следующие шаги:
1) Добавьте новый узел в кластер Hadoop.
2) Добавьте роль NameNode на этот узел. Убедитесь, что у него такое же имя хоста, как и у исходного узла NameNode.
3) Создайте путь к каталогу для NameNode name.dir (например, /dfs/namenode/current/
), убедившись, что разрешения установлены правильно.
4) Скопируйте файл VERSION
и последний файл fsimage
в каталог /dfs/namenode/current/
.
Также необходимо удостовериться в синхронизации ID кластера в файле VERSION
на JournalNodes и на NameNodes:
namespaceID=2122269565
clusterID=CID-b9f9d235-c822-4e3b-9a75-300565b127e4
5) Выполните следующую команду, чтобы создать md5-файл для fsimage
:
md5sum fsimage > fsimage.md5
fsimage
содержит критически важные метаданные файловой системы HDFS. Создание MD5-хеша позволяет убедиться, что файл не был повреждён или изменён в процессе передачи или восстановления. Контрольная сумма помогает выявить любые потенциальные ошибки или повреждения. NameNode при загрузке fsimage
может проверять целостность файла. Если хеши файла fsimage
и контрольной суммы fsimage.md5 совпадают, это подтверждает, что файл не повреждён, и его можно безопасно использовать для восстановления.
6) Запустите NameNode:
systemctl start hadoop-hdfs-namenode.service
fsimage
.
Резервное копирование метаданных файловой системы Ozone
Для создания резервной копии метаданных Ozone необходимо выполнить следующие шаги:
1) Остановить Storage Container Manager (SCM) и Ozone Manager (OM), чтобы предотвратить изменения во время резервного копирования:
- Для SCM:
systemctl stop ozone-scm.service
- Для OM:
bash systemctl stop ozone-om.service
2) Создать резервную копию метаданных SCM и OM:
-
Для SCM:
cp -R /data/ozone/meta/scm.db /tmp tar -czf /tmp/scm_backup.tgz -C /tmp scm.db
-
Для OM:
bash
cp -R /data/ozone/om/db/om.db /tmp
tar -czf /tmp/om_backup.tgz -C /tmp om.db
Команды создают архивы метаданных SCM и OM, которые затем можно использовать для резервного копирования.
3) Запустить SCM и OM:
systemctl start ozone-scm.service
systemctl start ozone-om.service
4) Сохранить архивы с резервной копией во внешнее хранилище.
Восстановление метаданных Ozone
Для восстановления данных Ozone из резервных копий scm.db
и om.db
, выполните следующие шаги:
Примечание : Эти действия позволят загрузить, сохраненные ранее, метаданные в каталоги SCM и OM, а затем перезапустить службы для возврата кластера в рабочее состояние.
1) Остановите SCM и OM:
systemctl stop ozone-scm.service
systemctl stop ozone-om.service
2) Скачайте резервные копии scm.db
и om.db
из внешнего хранилища.
3) Извлеките файлы scm.db
и om.db
из архивов:
tar -xzf /tmp/ozone-scm-backup.tgz -C /tmp
tar -xzf /tmp/ozone-om-backup.tgz -C /tmp
4) Переместите scm.db
и om.db
в соответствующие каталоги:
- Для
scm.db
переместите файл в каталог, который указан в конфигурации SCM (обычно /data/ozone/meta/):mv /tmp/scm.db /data/ozone/meta/
- Для
om.db
переместите файл в каталог OM (обычно /data/ozone/om/db/):5) Убедитесь, что права доступа настроены корректно.mv /tmp/om.db /data/ozone/om/db/
Проверьте, чтобы файлыscm.db
иom.db
принадлежали пользователю и группе Ozone. При необходимости установите владельцем ozone через chown:6) Перезапустите SCM и OM.chown -R ozone:ozone /data/ozone/meta/scm.db chown -R ozone:ozone /data/ozone/om/db/om.db
После того как базы данных восстановлены, запустите SCM и OM:7) Проверьте статус служб и убедитесь, что восстановление прошло успешно:systemctl start ozone-scm.service systemctl start ozone-om.service
После выполнения этих шагов метаданные Ozone будут восстановлены из резервной копии.systemctl status ozone-scm.service systemctl status ozone-om.service
Резервное копирование метаданных Zookeeper
Для создания резервной копии метаданных Zookeeper выполните следующие шаги:
1) Остановите экземпляр Zookeeper,чтобы предотвратить изменения в метаданных во время резервного копирования:
systemctl stop zookeeper
2) Создайте каталог для резервной копии:
mkdir -p /backup/zookeeper
cp -R /var/lib/zookeeper /backup/zookeeper/data
dataDir
в файле zoo.cfg
). По умолчанию это может быть, например, /var/lib/zookeeper
.
4) Скопируйте журнал транзакций в резервный каталог:
cp -R /path/to/transaction/logs /backup/zookeeper/logs
dataLogDir
в zoo.cfg
. По умолчанию он может находиться в том же каталоге, что и dataDir
, но часто выносится в отдельный каталог для улучшения производительности.
5) После завершения копирования данных снова запустите Zookeeper:
systemctl start zookeeper
6) Создайте архив резервной копии:
tar -czf /backup/zookeeper/zookeeper-backup-$(date +%Y%m%d-%H%M%S).tar.gz -C /backup/zookeeper
Восстановление метаданных Zookeeper
Для восстановления данных Zookeeper из резервной копии выполните следующие шаги: 1) Скачайте нужный архив из внешнего хранилища.
2) Остановите Zookeeper:
systemctl stop zookeeper
3) Очистите текущий каталог данных Zookeeper:
rm -rf /path/to/zookeeper/data/*
zoo.cfg
(по умолчанию путь может быть, например, /var/lib/zookeeper
).
4) Распакуйте архив в каталог данных Zookeeper:
tar -xzf /tmp/zookeeper-backup.tar.gz -C /path/to/zookeeper/data
chown
:
chown -R zookeeper:zookeeper /path/to/zookeeper/data
6) После восстановления данных перезапустите все экземпляры Zookeeper:
systemctl start zookeeper
7) Проверьте статус Zookeeper, чтобы убедиться в корректной работе сервиса:
systemctl status zookeeper
Резервное копирование и восстановление баз данных Hive, Ranger
Резервное копирование баз данных является критически важной практикой для обеспечения сохранности и доступности данных. Наличие актуальных резервных копий гарантирует, что вы сможете восстановить данные и минимизировать время простоя в случае инцидента.
Для создания резервной копии баз данных Hive, Ranger можно использовать утилиту pg_dump
. Она позволяет сделать дамп конкретной базы данных, который затем можно хранить как архив для дальнейшего восстановления.
При выполнении восстановления баз данных (Hive, Ranger) необходимо отключить соответствующие сервисы. Это обеспечит целостность данных во время процесса восстановления. После завершения восстановления перезапустите сервисы для применения изменений.