Co to jest usługa Apache Hadoop w usłudze Azure HDInsight?

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 Blob Storage, Azure Data Lake Storage Gen1 lub Azure Data Lake Storage Gen2.

Aby wyświetlić dostępne składniki stosu technologii Hadoop w usłudze HDInsight, zobacz Components and versions available with HDInsight (Składniki i wersje dostępne w usłudze HDInsight). Aby dowiedzieć się więcej o platformie Hadoop w usłudze HDInsight, zobacz stronę z opisem funkcji platformy Azure w usłudze HDInsight.

Co to jest MapReduce

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:

HDI.WordCountDiagram.

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:

[key]\t[value]

Aby uzyskać więcej informacji, zobacz Przesyłanie strumieniowe w usłudze Hadoop.

Przykłady użycia przesyłania strumieniowego usługi Hadoop w usłudze HDInsight można znaleźć w następującym dokumencie:

Gdzie mogę rozpocząć

Następne kroki