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 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:
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ąć
- Szybki start: tworzenie klastra Apache Hadoop w usłudze Azure HDInsight przy użyciu witryny Azure Portal
- Samouczek: przesyłanie zadań platformy Apache Hadoop w usłudze HDInsight
- Opracowywanie programów MapReduce w języku Java dla usługi Apache Hadoop w usłudze HDInsight
- Używanie programu Apache Hive jako narzędzia wyodrębniania, przekształcania i ładowania (ETL)
- Wyodrębnianie, przekształcanie i ładowanie (ETL) na dużą skalę
- Operacjonalizacja potoku analizy danych