Co to jest usługa Apache Hadoop w usłudze Azure HDInsight?
Artykuł
Apache Hadoop to oryginalna struktura typu „open source” do przetwarzania rozproszonego i analizy zestawów danych big data w klastrach. Ekosystem hadoop obejmuje powiązane oprogramowanie i narzędzia, w tym Apache Hive, Apache HBase, Spark, Kafka i wiele innych.
Usługa Azure HDInsight to w pełni zarządzana, pełna spektrum, usługa analizy typu open source w chmurze dla przedsiębiorstw. Typ klastra Apache Hadoop w usłudze Azure HDInsight umożliwia równoległe przetwarzanie i analizowanie danych wsadowych przy użyciu rozproszonego systemu plików Apache Hadoop (HDFS), zarządzania zasobami apache Hadoop YARN oraz prostego modelu programowania MapReduce. Klastry Hadoop w usłudze HDInsight są zgodne z usługą Azure Data Lake Storage Gen2.
Apache Hadoop MapReduce to struktura oprogramowania do pisania zadań, które przetwarzają ogromne ilości danych. Dane wejściowe są podzielone na niezależne fragmenty. Każdy fragment jest przetwarzany równolegle w węzłach w klastrze. Zadanie MapReduce składa się z dwóch funkcji:
Maper: używa danych wejściowych, analizuje je (zwykle przy użyciu operacji filtrowania i sortowania) i emituje krotki (pary klucz-wartość)
Reduktor: zużywa krotki emitowane przez mapator i wykonuje operację podsumowania, która tworzy mniejszy, połączony wynik z danych mapowania
Podstawowy przykład zadania MapReduce liczby wyrazów przedstawiono na poniższym diagramie:
Dane wyjściowe tego zadania to liczba wystąpień każdego wyrazu w tekście.
Maper pobiera każdy wiersz z tekstu wejściowego jako dane wejściowe i dzieli go na wyrazy. Emituje parę klucz/wartość za każdym razem, gdy słowo wystąpi słowo, następuje po nim 1. Dane wyjściowe są sortowane przed wysłaniem ich do reduktora.
Reduktor sumuje te liczby poszczególnych wyrazów i emituje pojedynczą parę klucz/wartość zawierającą słowo, po którym następuje suma jego wystąpień.
MapReduce można zaimplementować w różnych językach. Język Java jest najczęstszą implementacją i jest używany do celów demonstracyjnych w tym dokumencie.
Języki programistyczne
Języki lub struktury oparte na języku Java i maszynie wirtualnej Java można uruchamiać bezpośrednio jako zadanie MapReduce. Przykład używany w tym dokumencie to aplikacja Java MapReduce. Języki inne niż Java, takie jak C#, Python lub autonomiczne pliki wykonywalne, muszą używać przesyłania strumieniowego usługi Hadoop.
Przesyłanie strumieniowe usługi Hadoop komunikuje się z maperem i reduktorem za pośrednictwem stDIN i STDOUT. Maper i reduktor odczytują dane w danym momencie z stDIN i zapisują dane wyjściowe w formacie STDOUT. Każdy wiersz odczytany lub emitowany przez maper i reduktor musi mieć format pary klucz/wartość rozdzielany znakiem tabulacji:
Oceń, czy usługa Azure HDInsight może pomóc organizacji przetwarzać dane big data. Opisz, jak usługa Azure HDInsight używa popularnych struktur typu open source, które obsługują wiele scenariuszy, w tym wyodrębnianie, przekształcanie, magazynowanie danych i inne.
Demonstrate understanding of common data engineering tasks to implement and manage data engineering workloads on Microsoft Azure, using a number of Azure services.