Migrowanie lokalnych klastrów Apache Hadoop do usługi Azure HDInsight — najlepsze rozwiązania dotyczące architektury
Ten artykuł zawiera zalecenia dotyczące architektury systemów usługi Azure HDInsight. Jest to część serii, która zawiera najlepsze rozwiązania ułatwiające migrację lokalnych systemów Apache Hadoop do usługi Azure HDInsight.
Korzystanie z wielu klastrów zoptymalizowanych pod kątem obciążenia
Wiele lokalnych wdrożeń platformy Apache Hadoop składa się z jednego dużego klastra obsługującego wiele obciążeń. Ten pojedynczy klaster może być złożony i może wymagać naruszenia zabezpieczeń poszczególnych usług, aby wszystko działało razem. Migracja lokalnych klastrów Hadoop do usługi Azure HDInsight wymaga zmiany podejścia.
Klastry usługi Azure HDInsight są przeznaczone do określonego typu użycia zasobów obliczeniowych. Ponieważ magazyn może być współużytkowany w wielu klastrach, można utworzyć wiele klastrów obliczeniowych zoptymalizowanych pod kątem obciążeń w celu spełnienia potrzeb różnych zadań. Każdy typ klastra ma optymalną konfigurację dla tego konkretnego obciążenia. W poniższej tabeli wymieniono obsługiwane typy klastrów w usłudze HDInsight i odpowiednie obciążenia.
Obciążenie | Typ klastra usługi HDInsight |
---|---|
Przetwarzanie wsadowe (ETL/ELT) | Hadoop, Spark |
Magazynowanie danych | Hadoop, Spark, Interactive Query |
IoT/Przesyłanie strumieniowe | Kafka, Spark |
Przetwarzanie transakcyjne NoSQL | HBase |
Interakcyjne i szybsze zapytania z buforowaniem w pamięci | Zapytanie interakcyjne |
Analiza danych | platforma Spark |
W poniższej tabeli przedstawiono różne metody, których można użyć do utworzenia klastra usługi HDInsight.
Narzędzie | Oparte na przeglądarce | Wiersz polecenia | Interfejs API REST | SDK |
---|---|---|---|---|
Witryna Azure Portal | X | |||
Azure Data Factory | X | X | X | X |
Interfejs wiersza polecenia platformy Azure (wersja 1.0) | X | |||
Azure PowerShell | X | |||
cURL | X | X | ||
Zestaw SDK platformy .NET | X | |||
Zestaw SDK dla języka Python | X | |||
Zestaw SDK Java | X | |||
Szablony usługi Azure Resource Manager | X |
Aby uzyskać więcej informacji, zobacz artykuł Typy klastrów w usłudze HDInsight.
Używanie przejściowych klastrów na żądanie
Klastry usługi HDInsight mogą być nieużywane przez długi czas. Aby zaoszczędzić na kosztach zasobów, usługa HDInsight obsługuje klastry przejściowe na żądanie, które można usunąć po pomyślnym zakończeniu obciążenia.
Po usunięciu klastra skojarzone konto magazynu i metadane zewnętrzne nie zostaną usunięte. Klaster można później ponownie utworzyć przy użyciu tych samych kont magazynu i magazynów metadanych.
Azure Data Factory można użyć do planowania tworzenia klastrów usługi HDInsight na żądanie. Aby uzyskać więcej informacji, zobacz artykuł Create on-demand Apache Hadoop clusters in HDInsight using Azure Data Factory (Tworzenie klastrów platformy Apache Hadoop na żądanie w usłudze HDInsight przy użyciu Azure Data Factory).
Oddzielenie magazynu od zasobów obliczeniowych
Typowe lokalne wdrożenia usługi Hadoop używają tego samego zestawu maszyn do przechowywania danych i przetwarzania danych. Ponieważ są one kolokowane, zasoby obliczeniowe i magazyn muszą być skalowane razem.
W klastrach usługi HDInsight magazyn nie musi być kolokowany z obliczeniami i może znajdować się w usłudze Azure Storage, Azure Data Lake Storage lub obu tych przypadkach. Oddzielenie magazynu od zasobów obliczeniowych ma następujące korzyści:
- Udostępnianie danych w klastrach.
- Używanie klastrów przejściowych, ponieważ dane nie są zależne od klastra.
- Obniżony koszt magazynowania.
- Oddzielne skalowanie magazynu i zasobów obliczeniowych.
- Replikacja danych między regionami.
Klastry obliczeniowe są tworzone w pobliżu zasobów konta magazynu w regionie świadczenia usługi Azure w celu ograniczenia kosztów wydajności oddzielania zasobów obliczeniowych i magazynu. Szybkie sieci ułatwiają węzłom obliczeniowym uzyskiwanie dostępu do danych w usłudze Azure Storage.
Korzystanie z zewnętrznych magazynów metadanych
Istnieją dwa główne magazyny metadanych, które współpracują z klastrami usługi HDInsight: Apache Hive i Apache Oozie. Magazyn metadanych Hive to centralne repozytorium schematów, które może być używane przez aparaty przetwarzania danych, w tym Hadoop, Spark, LLAP, Presto i Apache Pig. Magazyn metadanych Oozie przechowuje szczegółowe informacje o planowaniu i stanie w toku oraz ukończonych zadaniach hadoop.
Usługa HDInsight używa magazynów metadanych Azure SQL Database for Hive i Oozie. Istnieją dwa sposoby konfigurowania magazynu metadanych w klastrach usługi HDInsight:
Domyślny magazyn metadanych
- Bez dodatkowych kosztów.
- Magazyn metadanych jest usuwany po usunięciu klastra.
- Magazyn metadanych nie może być współużytkowany między różnymi klastrami.
- Używa podstawowej bazy danych Azure SQL, która ma pięć limitów jednostek DTU.
Niestandardowy zewnętrzny magazyn metadanych
- Określ zewnętrzną bazę danych Azure SQL jako magazyn metadanych.
- Klastry można tworzyć i usuwać bez utraty metadanych, w tym szczegółów zadania Oozie schematu hive.
- Pojedyncza baza danych magazynu metadanych może być współdzielona z różnymi typami klastrów.
- Magazyn metadanych można skalować w górę zgodnie z potrzebami.
- Aby uzyskać więcej informacji, zobacz Używanie zewnętrznych magazynów metadanych w usłudze Azure HDInsight.
Najlepsze rozwiązania dotyczące magazynu metadanych Hive
Niektóre najlepsze rozwiązania dotyczące magazynu metadanych Hive w usłudze HDInsight są następujące:
- Użyj niestandardowego zewnętrznego magazynu metadanych, aby oddzielić zasoby obliczeniowe i metadane.
- Zacznij od wystąpienia Azure SQL warstwy S2, które zapewnia 50 jednostek DTU i 250 GB miejsca do magazynowania. Jeśli widzisz wąskie gardło, możesz skalować bazę danych w górę.
- Nie udostępniaj magazynu metadanych utworzonego dla jednej wersji klastra usługi HDInsight z klastrami innej wersji. Różne wersje programu Hive używają różnych schematów. Na przykład nie można udostępnić magazynu metadanych klastrom Hive 1.2 i Hive 2.1.
- Okresowo tworzenie kopii zapasowej niestandardowego magazynu metadanych.
- Zachowaj magazyn metadanych i klaster usługi HDInsight w tym samym regionie.
- Monitoruj magazyn metadanych pod kątem wydajności i dostępności przy użyciu narzędzi do monitorowania bazy danych Azure SQL, takich jak Azure Portal lub dzienniki usługi Azure Monitor.
- Wykonaj polecenie zgodnie z
ANALYZE TABLE
wymaganiami, aby wygenerować statystyki dla tabel i kolumn. Na przykładANALYZE TABLE [table_name] COMPUTE STATISTICS
.
Najlepsze rozwiązania dotyczące różnych obciążeń
- Rozważ użycie klastra LLAP w przypadku interakcyjnych zapytań Hive z ulepszonym czasem odpowiedzi LLAP jest nową funkcją programu Hive 2.0, która umożliwia buforowanie zapytań w pamięci.
- Rozważ użycie zadań platformy Spark zamiast zadań hive.
- Rozważ zastąpienie zapytań opartych na impala zapytaniami LLAP.
- Rozważ zastąpienie zadań MapReduce zadaniami platformy Spark.
- Rozważ zastąpienie zadań wsadowych platformy Spark o małym opóźnieniu przy użyciu zadań przesyłania strumieniowego ze strukturą platformy Spark.
- Rozważ użycie Azure Data Factory (ADF) 2.0 na potrzeby aranżacji danych.
- Rozważ użycie narzędzia Ambari do zarządzania klastrami.
- Zmień magazyn danych z lokalnego systemu plików HDFS na WASB lub ADLS lub ADFS na potrzeby przetwarzania skryptów.
- Rozważ użycie kontroli dostępu opartej na rolach platformy Ranger w tabelach hive i inspekcji.
- Rozważ użycie usługi CosmosDB zamiast bazy danych MongoDB lub Cassandra.
Następne kroki
Przeczytaj następny artykuł z tej serii: