Migrowanie lokalnych klastrów Apache Hadoop do usługi Azure HDInsight — najlepsze rozwiązania dotyczące migracji danych
Ten artykuł zawiera zalecenia dotyczące migracji danych do usługi Azure HDInsight. Jest to część serii, która zawiera najlepsze rozwiązania ułatwiające migrowanie lokalnych systemów Apache Hadoop do usługi Azure HDInsight.
Migrowanie danych lokalnych na platformę Azure
Istnieją dwie główne opcje migracji danych ze środowiska lokalnego do środowiska platformy Azure:
Transfer danych za pośrednictwem sieci przy użyciu protokołu TLS
Za pośrednictwem Internetu — możesz przesyłać dane do usługi Azure Storage za pośrednictwem zwykłego połączenia internetowego przy użyciu dowolnego z kilku narzędzi, takich jak: Eksplorator usługi Azure Storage, AzCopy, Azure PowerShell i interfejs wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz Przenoszenie danych do i z usługi Azure Storage.
Express Route — usługa ExpressRoute to usługa platformy Azure, która umożliwia tworzenie prywatnych połączeń między centrami danych firmy Microsoft i infrastrukturą lokalną lub w obiekcie kolokacji. Połączenia usługi ExpressRoute nie przechodzą przez publiczny Internet i zapewniają większe bezpieczeństwo, niezawodność i szybkość z mniejszymi opóźnieniami niż typowe połączenia przez Internet. Aby uzyskać więcej informacji, zobacz Tworzenie i modyfikowanie obwodu usługi ExpressRoute.
Transfer danych w trybie online usługi Data Box — usługa Data Box Edge i usługa Data Box Gateway to produkty do transferu danych online, które działają jako bramy magazynu sieciowego do zarządzania danymi między lokacją a platformą Azure. Data Box Edge, lokalne urządzenie sieciowe, przesyła dane na i z platformy Azure i przetwarza dane przy użyciu funkcji obliczeniowej Edge z obsługą sztucznej inteligencji. Data Box Gateway to urządzenie wirtualne z funkcjami bramy magazynu. Aby uzyskać więcej informacji, zobacz Dokumentację usługi Azure Data Box — transfer online.
Wysyłanie danych w trybie offline
Transfer danych w trybie offline urządzenia Data Box, Data Box Disk i Data Box Heavy ułatwiają przesyłanie dużych ilości danych na platformę Azure, gdy sieć nie jest opcją. Te urządzenia do przesyłania danych w trybie offline są dostarczane z Twojej organizacji do centrum danych platformy Azure. Korzystają one z szyfrowania AES, aby pomóc w ochronie Twoich danych podczas przesyłania, i przechodzą dokładny proces oczyszczania po przekazaniu, aby usunąć Twoje dane z urządzenia. Aby uzyskać więcej informacji na temat urządzeń do transferu offline urządzenia Data Box, zobacz Dokumentację usługi Azure Data Box — transfer w trybie offline. Aby uzyskać więcej informacji na temat migracji klastrów Hadoop, zobacz Migrowanie z lokalnego magazynu systemu plików HDFS do usługi Azure Storage przy użyciu usługi Azure Data Box.
W poniższej tabeli przedstawiono przybliżony czas trwania transferu danych na podstawie ilości danych i przepustowości sieci. Użyj urządzenia Data Box, jeśli migracja danych powinna potrwać ponad trzy tygodnie.
Ilość danych | Przepustowość sieci of 45 Mb/s (T3) |
Przepustowość sieci of 100 Mb/s |
Przepustowość sieci of 1 Gb/s |
Przepustowość sieci of 10 Gb/s |
---|---|---|---|---|
1 TB | 2 dni | 1 dzień | 2 godziny | 14 minut |
10 TB | 22 dni | 10 days | 1 dzień | 2 godziny |
35 TB | 76 dni | 34 dni | 3 dni | 8 godzin |
80 TB | 173 dni | 78 dni | 8 dni | 19 godzin |
100 TB | 216 dni | 97 dni | 10 days | 1 dzień |
200 TB | 1 rok | 194 dni | 19 dni | 2 dni |
500 TB | 3 lata | 1 rok | 49 dni | 5 dni |
1 PB | 6 lat | 3 lata | 97 dni | 10 days |
2 PB | 12 lat | 5 lat | 194 dni | 19 dni |
Narzędzia natywne dla platformy Azure, takie jak Apache Hadoop DistCp, Azure Data Factory i AzureCp, mogą służyć do transferu danych za pośrednictwem sieci. Narzędzie innej firmy WANDisco może być również używane w tym samym celu. Narzędzia Apache Kafka Mirrormaker i Apache Sqoop mogą być używane do ciągłego transferu danych ze środowiska lokalnego do systemów magazynu platformy Azure.
Zagadnienia dotyczące wydajności podczas korzystania z narzędzia Apache Hadoop DistCp
DistCp to projekt apache, który używa zadania MapReduce Map do transferu danych, obsługi błędów i odzyskiwania po tych błędach. Przypisuje listę plików źródłowych do każdego zadania mapy. Następnie zadanie mapowania kopiuje wszystkie przypisane pliki do miejsca docelowego. Istnieje kilka technik, które mogą poprawić wydajność platformy DistCp.
Zwiększanie liczby maperów
DistCp próbuje utworzyć zadania mapy, aby każdy z nich kopiował mniej więcej taką samą liczbę bajtów. Domyślnie zadania DistCp używają 20 maperów. Użycie większej liczby maperów dla narzędzia Distcp (z parametrem "m" w wierszu polecenia) zwiększa równoległość podczas procesu transferu danych i zmniejsza długość transferu danych. Istnieją jednak dwie kwestie, które należy wziąć pod uwagę podczas zwiększania liczby maperów:
Najniższy stopień szczegółowości DistCp jest pojedynczym plikiem. Określenie większej liczby maperów niż liczba plików źródłowych nie pomoże i zmarnuje dostępne zasoby klastra.
Rozważ użycie dostępnej pamięci Yarn w klastrze, aby określić liczbę maperów. Każde zadanie mapy jest uruchamiane jako kontener Yarn. Zakładając, że w klastrze nie są uruchomione żadne inne duże obciążenia, można określić liczbę maperów za pomocą następującej formuły: m = (liczba węzłów roboczych * pamięci YARN dla każdego węzła roboczego) / rozmiar kontenera YARN. Jeśli jednak inne aplikacje używają pamięci, wybierz tylko część pamięci YARN dla zadań DistCp.
Używanie więcej niż jednego zadania DistCp
Gdy rozmiar zestawu danych do przeniesienia jest większy niż 1 TB, użyj więcej niż jednego zadania DistCp. Użycie więcej niż jednego zadania ogranicza wpływ awarii. Jeśli jakiekolwiek zadanie zakończy się niepowodzeniem, wystarczy ponownie uruchomić to konkretne zadanie, a nie wszystkie zadania.
Rozważ podzielenie plików
Jeśli istnieje niewielka liczba dużych plików, rozważ podzielenie ich na fragmenty plików o rozmiarze 256 MB, aby uzyskać większą potencjalną współbieżność z większą liczbą maperów.
Użyj parametru wiersza polecenia "strategy"
Rozważ użycie strategy = dynamic
parametru w wierszu polecenia. Wartość domyślna parametru strategy
to uniform size
, w którym przypadku każda mapa kopiuje mniej więcej taką samą liczbę bajtów. Gdy ten parametr zostanie zmieniony na dynamic
, plik listy jest podzielony na kilka "plików fragmentów". Liczba plików fragmentów jest wielokrotną liczbą map. Każde zadanie mapy jest przypisywane do jednego z plików fragmentów. Po przetworzeniu wszystkich ścieżek we fragunku bieżący fragment zostanie usunięty i zostanie uzyskany nowy fragment. Proces będzie kontynuowany, dopóki nie będą dostępne żadne fragmenty. Takie podejście "dynamiczne" umożliwia szybsze wykonywanie zadań mapowania w celu korzystania z większej liczby ścieżek niż wolniejszych, co przyspiesza ogólne zadanie DistCp.
Zwiększanie liczby wątków
Sprawdź, czy zwiększenie parametru -numListstatusThreads
zwiększa wydajność. Ten parametr steruje liczbą wątków używanych do tworzenia listy plików, a 40 jest maksymalną wartością.
Korzystanie z algorytmu zatwierdzania danych wyjściowych
Sprawdź, czy przekazywanie parametru -Dmapreduce.fileoutputcommitter.algorithm.version=2
poprawia wydajność DistCp. Ten algorytm zatwierdzania danych wyjściowych ma optymalizacje dotyczące zapisywania plików wyjściowych w miejscu docelowym. Następujące polecenie to przykład pokazujący użycie różnych parametrów:
hadoop distcp -Dmapreduce.fileoutputcommitter.algorithm.version=2 -numListstatusThreads 30 -m 100 -strategy dynamic hdfs://nn1:8020/foo/bar wasb://<container_name>@<storage_account_name>.blob.core.windows.net/foo/
Migracja metadanych
Apache Hive
Magazyn metadanych hive można migrować przy użyciu skryptów lub replikacji bazy danych.
Migracja magazynu metadanych Hive przy użyciu skryptów
- Wygeneruj listy DDLs hive z lokalnego magazynu metadanych Hive. Ten krok można wykonać przy użyciu skryptu powłoki bash otoki.
- Edytuj wygenerowany kod DDL, aby zastąpić adres URL systemu plików HDFS adresami URL WASB/ADLS/ABFS.
- Uruchom zaktualizowany plik DDL w magazynie metadanych z klastra usługi HDInsight.
- Upewnij się, że wersja magazynu metadanych Hive jest zgodna ze środowiskiem lokalnym i chmurą.
Migracja magazynu metadanych Hive przy użyciu replikacji bazy danych
Skonfiguruj replikację bazy danych między lokalną bazą danych magazynu metadanych Hive i bazą danych magazynu metadanych usługi HDInsight.
Użyj polecenia "Hive MetaTool", aby zastąpić adres URL systemu plików HDFS adresami URL WASB/ADLS/ABFS, na przykład:
./hive --service metatool -updateLocation hdfs://nn1:8020/ wasb://<container_name>@<storage_account_name>.blob.core.windows.net/
Apache Ranger
- Eksportowanie lokalnych zasad ranger do plików XML.
- Przekształć lokalne ścieżki oparte na systemie plików HDFS do usługi WASB/ADLS przy użyciu narzędzia takiego jak XSLT.
- Zaimportuj zasady do platformy Ranger uruchomionej w usłudze HDInsight.
Następne kroki
Przeczytaj następny artykuł z tej serii: