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.
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 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:
- 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