У цій статті описано рекомендовані практичні поради щодо резервного копіювання середовищ Hadoop, що не належать до PowerScale, до кластера Dell PowerScale. Завдяки надійному захисту даних, що кодує стирання, який забезпечує ефективність зберігання понад 80%, Dell PowerScale є ідеальною мішенню для резервного копіювання даних, розташованих у кластері Hadoop. DistCp (розподілена копія) - це стандартний інструмент, який поставляється з усіма дистрибутивами та версіями Hadoop. DistCp може копіювати цілі каталоги Hadoop. DistCp працює як завдання MapReduce для паралельного копіювання файлів, повністю використовуючи ваші системи, якщо це необхідно. Також є опція обмеження пропускної здатності, щоб контролювати вплив на інші завдання.
СЕРЕДОВИЩЕ
У цій статті використовується наступне тестове середовище:
Оскільки DistCp є стандартним інструментом Hadoop, підхід, викладений у цьому документі, застосовний до більшості, якщо не до всіх інших дистрибутивів і версій Hadoop.
Читаючи цей документ, припустімо, що дані для резервного копіювання розташовані на кластері PHD Hadoop HDFS у каталозі /mydata. Приклади створюють резервні копії цих даних у кластері PowerScale у каталозі /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. PowerScale не зберігає Hadoop CRC, і його розрахунок був би занадто дорогим. Тому ці параметри необхідні для запобігання помилкам, пов'язаним із перевіркою CRC.
Наступний параметр "/mydata" - це вихідний шлях до вихідного кластера Hadoop. Це також може бути "/" для резервного копіювання всього простору імен HDFS. Оскільки шлях не є повністю кваліфікованим, він використовує HDFS NameNode, вказаний у параметрі fs.defaultFS core-site.xml.
Останній параметр «hdfs://all-nc-s-hdfs/backup/mydata» є цільовим шляхом на вашому кластері PowerScale. Хост-частина "all-nc-s-hdfs" може бути відносною або повною назвою DNS, наприклад all-nc-s-hdfs.example.com. Це має бути DNS-ім'я зони SmartConnect для вашого кластера PowerScale. Частина каталогу "/backup/mydata" є відносною до кореневого шляху HDFS, визначеного у вашій зоні доступу до кластера PowerScale. Якщо ваш кореневий шлях HDFS є /ifs/hadoop, то це значення відноситься до /ifs/hadoop/backup/mydata.
Файли, розміри яких однакові у вихідному та цільовому каталогах, вважаються незмінними та не копіюються. Зокрема, часові позначки файлів не використовуються для визначення змінених файлів. Для отримання більш детальної інформації про DistCp перегляньте Hadoop DistCp Version 2 Guide.
ДОЗВОЛИ НА
КОПІЮВАННЯЗа замовчуванням власник, група та дозволи цільових файлів скидаються до стандартних для нових файлів, створених користувачем, який ініціює DistCp. Усі власники, групи та дозволи, визначені для вихідного файлу, буде втрачено. Щоб зберегти ці дані з початкових файлів, скористайтеся параметром -p. Оскільки параметр -p має виконувати chown/chgrp, користувач, який ініціює DistCp, має бути суперкористувачем у цільовій системі. Для цього працює користувач root на кластері PowerScale. Наприклад: [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
ВИКОРИСТАННЯ ЗНІМКІВ ДЛЯ ДЖЕРЕЛА
РЕЗЕРВНОГО КОПІЮВАННЯРезервне копіювання великих наборів даних може зайняти багато часу. Файли, які існують на початку процесу DistCp під час сканування структури каталогів, можуть більше не існувати під час копіювання цього файлу. Ця зміна файлів призводить до помилок. Крім того, програма може вимагати послідовного резервного копіювання в один момент часу, щоб її можна було використовувати. Щоб вирішити ці проблеми, рекомендується створити знімок HDFS вашого джерела, щоб переконатися, що набір даних не змінюється під час процесу резервного копіювання. Це не пов'язано з функцією SnapshotIQ вашого цільового кластера PowerScale.
Щоб використовувати знімки HDFS, спочатку потрібно дозволити знімки для певного каталогу:[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
Безпосередньо перед резервним копіюванням за допомогою DistCp створіть знімок HDFS:
[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot/mydata backupsnap Створений знімок /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. Ви можете створювати знімки за допомогою інтерфейсу веб-адміністратора або CLI. Щоб створити один знімок PowerScale вручну за допомогою командного рядка, запустіть SSH у будь-який вузол PowerScale і виконайте наступне: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Після завершення резервного копіювання DistCp до кластера PowerScale ви можете використовувати OneFS SyncIQ, щоб скопіювати знімки через глобальну мережу в інші кластери PowerScale. Відтворені знімки можуть стати універсальним і ефективним компонентом вашої стратегії аварійного відновлення.
Малюнок 2: Реплікація SynIQ для декількох кластерів
IsilonРОБОТА З ВИДАЛЕНИМИ ФАЙЛАМИ
За замовчуванням файли, видалені з вихідного кластера Hadoop, не видаляються з цільового кластера Hadoop. Якщо вам потрібна така поведінка, додайте аргумент -delete до команди DistCp. Під час використання цієї команди рекомендується використовувати знімки об'єкта резервного копіювання, щоб забезпечити відновлення видалених файлів.
ПЛАНУВАННЯ РЕЗЕРВНОГО КОПІЮВАННЯ
Ви можете автоматизувати та запланувати кроки для резервного копіювання кластера Hadoop за допомогою різних методів. Apache Oozie часто використовується для автоматизації завдань Hadoop, і він безпосередньо підтримує DistCp. CRON також можна використовувати для запуску скрипта оболонки. Щоб автоматизувати виконання команд у сеансі SSH, увімкніть SSH без пароля. SSH без пароля дозволяє користувачеві CRON підключатися до вашого клієнта Hadoop і вашого кластера PowerScale (якщо використовується 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, призначений для резервного копіювання та архівування, а не для високої продуктивності, швидше за все, не забезпечить таку ж продуктивність, як ваше основне середовище Hadoop. Рекомендується провести тестування або проконсультуватися з Dell PowerScale щодо правильного розміру.