В этой статье описаны рекомендуемые передовые подходы к резервному копированию сред Hadoop, отличных от PowerScale, в кластер Dell PowerScale Cluster. Благодаря надежной защите данных с помощью кодирования для защиты от потерь, которая обеспечивает эффективность хранилища свыше 80%, Dell PowerScale является идеальным целевым устройством для резервного копирования данных, расположенных в кластере Hadoop. DistCp (распределенная копия) — это стандартный инструмент, который поставляется со всеми дистрибутивами и версиями Hadoop. DistCp может копировать целые каталоги Hadoop. DistCp выполняется как задание MapReduce для параллельного копирования файлов, при необходимости полностью используя системы. Кроме того, можно ограничить пропускную способность для контроля влияния на другие задачи.
СРЕДА
В этой статье используется следующая тестовая среда:
Поскольку DistCp является стандартным инструментом Hadoop, подход, описанный в данном документе, применим к большинству, если не ко всем остальным дистрибутивам и версиям Hadoop.
При чтении этого документа можно предположить, что данные для резервного копирования находятся в кластере PHD Hadoop HDFS в каталоге /mydata. В примерах выполняется резервное копирование этих данных в кластер PowerScale Cluster в каталог /ifs/hadoop/backup/mydata.
Рис. 1. Резервное копирование кластера Hadoop в Isilon
Самая простая команда резервного копирования приведена ниже.
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata
Указанную выше команду можно выполнить на любом хосте, на котором установлен клиент Hadoop (hadoop). Пользователь, выполняющий эту команду, должен иметь разрешения на чтение исходных файлов и запись целевых файлов.
Необходимо указать параметры -skipcrccheck и -update, чтобы избежать проверки CRC для целевых файлов, которые размещаются в кластере PowerScale Cluster. PowerScale не хранит CRC Hadoop, и расчет был бы слишком дорогостоящим. Поэтому эти параметры необходимы для предотвращения ошибок, связанных с проверкой CRC.
Следующий параметр — «/mydata», — является исходным путем в исходном кластере Hadoop. Это также может быть «/» для резервного копирования всего пространства имен HDFS. Поскольку путь не полностью определен, он использует HDFS NameNode, указанный в параметре fs.defaultFS файла core-site.xml.
Конечный параметр «hdfs://all-nc-s-hdfs/backup/mydata» является целевым путем в кластере PowerScale Cluster. Часть хоста «all-nc-s-hdfs» может быть относительным или полным именем DNS, например all-nc-s-hdfs.example.com. Это должно быть имя DNS зоны SmartConnect для кластера PowerScale Cluster. Часть каталога «/backup/mydata» относится к корневому пути HDFS, определенному в зоне доступа кластера PowerScale Cluster. Если корневой путь HDFS /ifs/hadoop, это значение относится к /ifs/hadoop/backup/mydata.
Файлы, размеры которых идентичны в исходном и целевом каталогах, считаются неизмененными и не копируются. В частности, метки времени файла не используются для определения измененных файлов. Подробнее о DistCp см. в документе Руководство по Hadoop DistCp версии 2.
РАЗРЕШЕНИЯ НА КОПИРОВАНИЕ
По умолчанию параметры владельца, группы и разрешений целевых файлов возвращаются к значениям по умолчанию для новых файлов, созданных пользователем, инициирующим DistCp. Любые значения владельца, группы и разрешений, определенные для исходного файла, будут утеряны. Чтобы сохранить эту информацию из исходных файлов, используйте параметр -p. Поскольку параметр -p должен выполнять chown/chgrp, пользователь, инициирующий DistCp, должен быть администратором в целевой системе. Для этой цели подойдет пользователь root кластера PowerScale Cluster. Пример. [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
ИСПОЛЬЗОВАНИЕ СНИМКОВ В КАЧЕСТВЕ ИСТОЧНИКА РЕЗЕРВНОГО КОПИРОВАНИЯ
Резервное копирование больших наборов данных может занять много времени. Файлы, которые существуют в начале процесса DistCp при сканировании структуры каталогов, могут больше не существовать при копировании этого файла. Это изменение файлов приводит к ошибкам. В дальнейшем приложению может потребоваться согласованная резервная копия на определенный момент времени для его использования. Для решения этих проблем рекомендуется создать снимок файловой системы HDFS исходного устройства, чтобы набор данных не изменялся во время резервного копирования. Это не связано с функцией SnapshotIQ в целевом кластере PowerScale Cluster.
Чтобы использовать снимки HDFS, необходимо сначала разрешить снимки для определенного каталога:[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
Непосредственно перед резервным копированием с помощью DistCp создайте снимок HDFS:
[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnap
Имя этого снимка: backupsnap. Доступ к нему можно получить по пути HDFS /mydata/.snapshot/backupsnap. Любые изменения файлов HDFS после этого снимка не отражаются в последующем резервном копировании. Можно выполнить резервное копирование снимка файловой системы в PowerScale с помощью следующей команды:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata
По завершении выполнения команды резервного копирования можно удалить снимок. Это позволит освободить место для хранения старых версий файлов, которые были изменены с момента создания снимка:
[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap
ИСПОЛЬЗОВАНИЕ СНИМКОВ PowerScale В КАЧЕСТВЕ ЦЕЛЕВОГО УСТРОЙСТВА ДЛЯ РЕЗЕРВНОГО КОПИРОВАНИЯ
Независимо от использования снимков в качестве источника резервного копирования, для восстановления более старых версий файлов может потребоваться сохранить несколько снимков целевого каталога резервного копирования.
Для создания снимков в PowerScale необходима лицензия SnapshotIQ. Снимки файловой системы можно создавать с помощью веб-интерфейса администратора или интерфейса командной строки. Чтобы создать один снимок PowerScale вручную с помощью интерфейса командной строки, подключитесь по SSH к любому узлу PowerScale Node и выполните следующую команду:all-nc-s-1# isi snapshot snapshots create /ifs/hadoop/backup/mydata --name backup-2014-07-01 --expires 1D --verbose
Created snapshot backup-2014-07-01 with ID 6
Эту команду можно добавить в процесс резервного копирования, который описан ниже в разделе «Планирование резервного копирования».
Дополнительные сведения о снимках PowerScale OneFS см. в документе «Руководство по администрированию PowerScale OneFS с помощью CLI» для вашей версии OneFS. Информационные центры PowerScale OneFS
РЕПЛИКАЦИЯ SYNCIQ ДЛЯ НЕСКОЛЬКИХ КЛАСТЕРОВ PowerScale Cluster
После завершения резервного копирования с помощью DistCp в кластер PowerScale Cluster можно использовать OneFS SyncIQ для репликации снимков по сети WAN в другие кластеры PowerScale Cluster. Реплицированные снимки файловой системы могут стать универсальным и эффективным компонентом стратегии восстановления после сбоев.
Рис. 2. Репликация SyncIQ для нескольких кластеров Isilon
ОБРАБОТКА УДАЛЕННЫХ ФАЙЛОВ
По умолчанию файлы, удаленные из исходного кластера Hadoop, не удаляются из целевого кластера Hadoop. Если требуется такое поведение, добавьте аргумент -delete в команду DistCp. При использовании этой команды рекомендуется использовать снимки на целевом устройстве резервного копирования, чтобы обеспечить восстановление удаленных файлов.
ПЛАНИРОВАНИЕ РЕЗЕРВНОГО КОПИРОВАНИЯ
Вы можете автоматизировать и запланировать этапы резервного копирования кластера Hadoop различными способами. Apache Oozie часто используется для автоматизации задач Hadoop и напрямую поддерживает DistCp. CRON также можно использовать для запуска сценария оболочки. Чтобы автоматизировать выполнение команд в сеансе SSH, включите вход через SSH без пароля. Вход через SSH без пароля позволяет пользователю CRON подключаться к вашему клиенту Hadoop и кластеру PowerScale Cluster (при использовании SnapshotIQ).
Целевые файлы резервного копирования в PowerScale доступны из приложений Hadoop так же, как и исходные файлы, благодаря поддержке PowerScale для HDFS. Данные резервного копирования можно использовать напрямую, не восстанавливая их в исходной среде Hadoop. Эта возможность экономит время анализа. Например, при запуске команды MapReduce:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC
Можно выполнить задание MapReduce для набора данных резервного копирования в PowerScale, выполнив следующую команду:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC
Чтобы указать полный путь Hadoop вместо параметра fs.defaultFS, обратитесь к поставщику приложения для получения дополнительной информации. Кроме того, кластер PowerScale Cluster, предназначенный для резервного копирования и архивирования, а не для обеспечения высокой производительности, скорее всего не обеспечивает такую же производительность, как и основная среда Hadoop. Рекомендуется провести тестирование или проконсультироваться со службой поддержки Dell PowerScale для определения правильной конфигурации.