W tym artykule opisano zalecane najlepsze praktyki dotyczące tworzenia kopii zapasowych środowisk Hadoop innych niż PowerScale do klastra Dell PowerScale. Dzięki solidnej ochronie danych poprzez kodowanie wymazywania (metoda EC), zapewniające ponad 80% poprawę wydajności pamięci masowej, Dell PowerScale jest idealnym celem do tworzenia kopii zapasowych danych znajdujących się w klastrze Hadoop. DistCp (rozproszona kopia) to standardowe narzędzie dostarczane ze wszystkimi dystrybucjami i wersjami Hadoop. DistCp może skopiować całe katalogi Hadoop. DistCp działa jako zadanie MapReduce do wykonywania kopii plików równolegle, w pełni korzystając z systemów, jeśli jest to wymagane. Istnieje również opcja ograniczenia przepustowości w celu kontrolowania wpływu na inne zadania.
ŚRODOWISKO
W tym artykule wykorzystano następujące środowisko testowe:
Ponieważ DistCp jest standardowym narzędziem Hadoop, podejście przedstawione w tym dokumencie ma zastosowanie do większości, jeśli nie wszystkich innych dystrybucji i wersji Hadoop.
Podczas czytania tego dokumentu załóżmy, że dane do sporządzenia kopii zapasowej znajdują się w klastrze PHD Hadoop HDFS w katalogu /mydata. Przykłady tworzenia kopii zapasowej tych danych w klastrze PowerScale w katalogu /ifs/hadoop/backup/mydata.
Rysunek 1. Tworzenie kopii zapasowej klastra Hadoop do Isilon
Najprostsze polecenie kopii zapasowej przedstawiono poniżej:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata
Można uruchomić powyższe polecenie na każdym hoście, na którym zainstalowano klienta Hadoop (hadoop). Użytkownik uruchamiający polecenie musi mieć uprawnienia do odczytu plików źródłowych i zapisywania plików docelowych.
Muszą być określone opcje -skipcrccheck i -update, aby uniknąć kontroli CRC w plikach docelowych umieszczonych w klastrze PowerScale. PowerScale nie przechowuje Hadoop CRC (jego obliczenie byłoby zbyt kosztowne). W związku z tym opcje te są wymagane, aby zapobiec błędom związanym z kontrolą CRC.
Następny parametr „/mydata” to ścieżka źródłowa w źródłowym klastrze Hadoop. Może to być również „/”, aby utworzyć kopię zapasową całej przestrzeni nazw HDFS. Ponieważ ścieżka nie jest w pełni kwalifikowana, używa nazwy węzła HDFS określonej w parametrze fs.defaultFS pliku core-site.xml.
Ostatnim parametrem „hdfs://all-nc-s-hdfs/backup/mydata” jest ścieżka docelowa w klastrze PowerScale. Część hosta „all-nc-s-hdfs” może być względną lub w pełni kwalifikowaną nazwą DNS, taką jak all-nc-s-hdfs.example.com. Powinna to być nazwa DNS strefy SmartConnect dla klastra PowerScale. Część katalogu „/backup/mydata” ma związek ze ścieżką główną HDFS zdefiniowaną w strefie dostępu klastra PowerScale. Jeśli ścieżka główna HDFS to /ifs/hadoop,wartość ta odnosi się do /ifs/hadoop/backup/mydata.
Przyjmuje się, że pliki, których rozmiary są identyczne w katalogach źródłowych i docelowych, nie zawierają zmian i nie są kopiowane. W szczególności sygnatury czasowe plików nie są używane do określania zmienionych plików. Aby uzyskać więcej informacji na temat DistCp, zapoznaj się z przewodnikiem Hadoop DistCp w wersji 2.
UPRAWNIENIA DO KOPIOWANIA
Domyślnie właściciel, grupa i uprawnienia plików docelowych są resetowane do wartości domyślnej dla nowych plików utworzonych przez użytkownika inicjującego DistCp. Każdy właściciel i grupa, a także uprawnienia zdefiniowane dla pliku źródłowego zostaną utracone. Aby zachować te informacje z plików źródłowych, użyj opcji -p. Ponieważ opcja -p musi wykonać chwon/chgrp, użytkownik inicjujący DistCp musi być superużytkownikiem w systemie docelowym. W tym celu działa użytkownik główny w klastrze PowerScale. Oto przykład: [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
KORZYSTANIE Z MIGAWEK DLA ŹRÓDŁA KOPII ZAPASOWEJ
Tworzenie kopii zapasowych dużych zestawów danych może długo trwać. Pliki, które istnieją na początku procesu DistCp podczas skanowania struktury katalogów, mogą już nie istnieć po skopiowaniu tego pliku. Ta zmiana w plikach powoduje błędy. Ponadto aplikacja może wymagać spójnej kopii zapasowej pojedynczego punktu w czasie, aby mogła być użyteczna. Aby rozwiązać te problemy, zaleca się utworzenie migawki HDFS źródła, aby upewnić się, że zestaw danych nie zmieni się podczas procesu tworzenia kopii zapasowej. Nie ma to związku z funkcją SnapshotIQ docelowego klastra PowerScale.
Aby korzystać z migawek HDFS, należy najpierw zezwolić na migawki dla określonego katalogu:[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
Bezpośrednio przed utworzeniem kopii zapasowej za pomocą DistCp utwórz migawkę HDFS:
[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnap
Nazwa migawki to backupsnap. Dostęp do niej można uzyskać w ścieżce HDFS /mydata/.snapshot/backupsnap. Wszelkie zmiany w plikach HDFS po wykonaniu tej migawki nie są odzwierciedlone w kolejnych kopiach zapasowych. Kopię zapasową migawki można utworzyć w PowerScale za pomocą następującego polecenia:
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata
Po zakończeniu działania polecenia kopii zapasowej można usunąć migawkę. W ten sposób zwalnia się dowolne miejsce używane do przechowywania starszych wersji plików, które zostały zmodyfikowane od momentu wykonania migawki:
[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap
KORZYSTANIE Z MIGAWEK PowerScale DLA CELÓW TWORZENIA KOPII ZAPASOWYCH
Niezależnie od korzystania z migawek dla źródła kopii zapasowej, możesz zachować wiele migawek katalogu docelowego kopii zapasowej, aby przywrócić starsze wersje plików.
Aby utworzyć migawki w PowerScale, musisz mieć licencję SnapshotIQ. Migawki można tworzyć za pomocą internetowego interfejsu administratora lub interfejsu wiersza poleceń. Aby ręcznie utworzyć jedną migawkę PowerScale przy użyciu interfejsu wiersza poleceń, za pomocą SSH połącz się z dowolnym węzłem PowerScale i uruchom następujące polecenie: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
Możesz dodać to polecenie do procesu tworzenia kopii zapasowej, opisanego w poniższej sekcji Harmonogram kopii zapasowych.
Aby uzyskać więcej informacji na temat migawek PowerScale OneFS, zapoznaj się z podręcznikiem administracji interfejsu wiersza poleceń PowerScale OneFS dla posiadanej wersji OneFS: Centra informacji PowerScale OneFS
REPLIKACJA SYNCIQ DLA WIELU KLASTRÓW PowerScale
Po zakończeniu tworzenia kopii zapasowej DistCp w klastrze PowerScale można użyć OneFS SyncIQ do replikowania migawek w sieci WAN do innych klastrów PowerScale. Replikowane migawki mogą stanowić wszechstronny i wydajny element strategii odtwarzania po awarii.
Rysunek 2. Replikacja SynIQ dla wielu klastrów Isilon
POSTĘPOWANIE Z USUNIĘTYMI PLIKAMI
Domyślnie pliki usunięte ze źródłowego klastra Hadoop nie są usuwane z docelowego klastra Hadoop. Jeśli jest to konieczne, dodaj argument -delete do polecenia DistCp. W przypadku korzystania z tego polecenia zaleca się użycie migawek na obiekcie docelowym kopii zapasowej w celu umożliwienia odzyskiwania usuniętych plików.
HARMONOGRAM KOPII ZAPASOWYCH
Można zautomatyzować i zaplanować kroki tworzenia kopii zapasowej klastra Hadoop przy użyciu różnych metod. Do automatyzacji zadań Hadoop często używa się Apache Oozie, które bezpośrednio obsługuje DistCp. Można też użyć CRON do uruchamiania skryptu powłoki. Aby zautomatyzować uruchamianie poleceń w sesji SSH, włącz SSH bez hasła. SSH bez hasła umożliwia użytkownikowi CRON łączenie się z klientem Hadoop i klastrem PowerScale (jeśli używasz SnapshotIQ).
Pliki docelowe kopii zapasowej w programie PowerScale są dostępne w aplikacjach Hadoop w taki sam sposób, jak pliki źródłowe, ze względu na obsługę PowerScale dla HDFS. Możesz bezpośrednio korzystać z danych kopii zapasowej bez konieczności przywracania ich do środowiska oryginalnego źródła Hadoop. Ta funkcja pozwala zaoszczędzić czas analizy. Na przykład, jeśli uruchomisz następujące polecenie MapReduce:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC
Zadanie MapReduce można uruchomić w odniesieniu do zestawu danych kopii zapasowej w PowerScale za pomocą następującego polecenia:hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC
Aby określić w pełni kwalifikowaną ścieżkę Hadoop, zamiast używać parametru fs.defaultFS, należy sprawdzić szczegóły u dostawcy aplikacji. Ponadto klaster PowerScale przeznaczony do tworzenia kopii zapasowych i archiwizacji, a nie do intensywnego przetwarzania, prawdopodobnie nie zapewnia takiej samej wydajności jak podstawowe środowisko Hadoop. Zalecane jest testowanie lub konsultacja z Dell PowerScale w celu uzyskania odpowiedniej zmiany rozmiaru.