Skip to content

Резервное копирование и восстановление метаданных 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
Команда переводит 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.

Резервное копирование метаданных файловой системы 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/):
     mv /tmp/om.db /data/ozone/om/db/ 
    
    5) Убедитесь, что права доступа настроены корректно.
    Проверьте, чтобы файлы scm.db и om.db принадлежали пользователю и группе Ozone. При необходимости установите владельцем ozone через chown:
    chown -R ozone:ozone /data/ozone/meta/scm.db 
    chown -R ozone:ozone /data/ozone/om/db/om.db
    
    6) Перезапустите SCM и OM.
    После того как базы данных восстановлены, запустите SCM и OM:
    systemctl start ozone-scm.service 
    systemctl start ozone-om.service 
    
    7) Проверьте статус служб и убедитесь, что восстановление прошло успешно:
    systemctl status ozone-scm.service 
    systemctl status ozone-om.service 
    
    После выполнения этих шагов метаданные Ozone будут восстановлены из резервной копии.

Резервное копирование метаданных 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) необходимо отключить соответствующие сервисы. Это обеспечит целостность данных во время процесса восстановления. После завершения восстановления перезапустите сервисы для применения изменений.