Skip to content

Резервное копирование и восстановление метаданных MWS Data Slon

При работе с Big Data резервное копирование выполняется только для критически важных данных, а не для всего объема данных, поскольку размер этих данных может достигать нескольких петабайт. Однако, мы рекомендуем настроить резервное копирование метаданных кластера, а именно:
- метаданных файловой системы HDFS
- метаданных 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
Команда переводит NameNode в безопасный режим для предотвращения изменений в метаданных во время резервного копирования.

4) Создать новый файл fsimage , объединив все оставшиеся журналы правок с последним fsimage, сохранив полное состояние в новом файле:

  hdfs dfsadmin -saveNamespace
5) Скопировать последний fsimage файл из HDFS в каталог на локальной файловой системе. Этот файл можно сохранить для резервного копирования. Сделайте одну резервную копию файла VERSION . Его не нужно регулярно резервировать, поскольку он не изменяется, но он важен, поскольку содержит идентификатор кластера и другие сведения.

  hdfs dfsadmin -fetchImage <local_dir>

6) Выйти из безопасного режима:

  hdfs dfsadmin -safemode leave
Возвращает NameNode в обычный режим после завершения резервного копирования.

Восстановление метаданных 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
После выполнения этих шагов метаданные HDFS будут восстановлены до состояния, зафиксированного в файле fsimage.

Резервное копирование метаданных Zookeeper

Для создания резервной копии метаданных Zookeeper выполните следующие шаги:

1) Остановите экземпляр Zookeeper,чтобы предотвратить изменения в метаданных во время резервного копирования:

 systemctl stop zookeeper 
Примечание : Для создания резервной копии остановить необходимо только один экземпляр. Это позволит избежать изменений в метаданных на этом узле во время копирования и обеспечит консистентность данных. Убедитесь, что остальные узлы в кластере продолжают функционировать, чтобы избежать временной недоступности сервиса.

2) Создайте каталог для резервной копии:

  mkdir -p /backup/zookeeper
3) Скопируйте данные Zookeeper:
cp -R /var/lib/zookeeper /backup/zookeeper/data
Скопируйте каталог данных Zookeeper, который обычно указывается в конфигурации (dataDir в файле zoo.cfg). По умолчанию это может быть, например, /var/lib/zookeeper.

4) Скопируйте журнал транзакций в резервный каталог:

 cp -R /path/to/transaction/logs /backup/zookeeper/logs 
Zookeeper хранит журнал транзакций, обычно указываемый в параметре 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 
7) Загрузите резервную копию во внешнее хранилище.

Восстановление метаданных Zookeeper

Для восстановления данных Zookeeper из резервной копии выполните следующие шаги: 1) Скачайте нужный архив из внешнего хранилища.

2) Остановите Zookeeper:

 systemctl stop zookeeper 
Перед тем как заменить данные, остановите 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
5) Убедитесь, что у восстановленных данных верно указан владелец. При необходимости установите владельцем zookeper через chown:
chown -R zookeeper:zookeeper /path/to/zookeeper/data 

6) После восстановления данных перезапустите все экземпляры Zookeeper:

 systemctl start zookeeper 
Перезапустите все экземпляры Zookeeper, чтобы обеспечить их синхронизацию. Это необходимо для того, чтобы все узлы кластера использовали обновлённые метаданные.

7) Проверьте статус Zookeeper, чтобы убедиться в корректной работе сервиса:

 systemctl status zookeeper  
После завершения всех процедур восстановления и перезапуска экземпляров проверьте статус каждого узла в кластере, чтобы удостовериться, что они все работают корректно и синхронизированы друг с другом. Это поможет избежать возможных проблем с расхождением данных в будущем.

Резервное копирование и восстановление баз данных Hive, Ranger

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

Для создания резервной копии баз данных Hive, Ranger можно использовать утилиту pg_dump. Она позволяет сделать дамп конкретной базы данных, который затем можно хранить как архив для дальнейшего восстановления.

При выполнении восстановления баз данных (Hive, Ranger) необходимо отключить соответствующие сервисы. Это обеспечит целостность данных во время процесса восстановления. После завершения восстановления перезапустите сервисы для применения изменений.