Co to jest Apache Hadoop w usłudze Azure HDInsight?What is Apache Hadoop in Azure HDInsight?

Apache Hadoop to oryginalna struktura typu „open source” do przetwarzania rozproszonego i analizy zestawów danych big data w klastrach.Apache Hadoop was the original open-source framework for distributed processing and analysis of big data sets on clusters. Ekosystem usługi Hadoop obejmuje powiązane oprogramowanie i narzędzia, w tym Apache Hive, Apache HBase, Spark, Kafka i wiele innych.The Hadoop ecosystem includes related software and utilities, including Apache Hive, Apache HBase, Spark, Kafka, and many others.

Azure HDInsight to w pełni zarządzana usługa analizy typu open source w chmurze dla przedsiębiorstw.Azure HDInsight is a fully managed, full-spectrum, open-source analytics service in the cloud for enterprises. Typ klastra Apache Hadoop w usłudze Azure HDInsight umożliwia korzystanie z systemu HDFS, zarządzanie zasobami PRZĘDZy oraz prosty model programowania MapReduce do równoległego przetwarzania i analizowania danych wsadowych.The Apache Hadoop cluster type in Azure HDInsight allows you to use HDFS, YARN resource management, and a simple MapReduce programming model to process and analyze batch data in parallel.

Aby wyświetlić dostępne składniki stosu technologii Hadoop w usłudze HDInsight, zobacz składniki i wersje dostępne w usłudze HDInsight.To see available Hadoop technology stack components on HDInsight, see Components and versions available with HDInsight. Aby dowiedzieć się więcej o platformie Hadoop w usłudze HDInsight, zobacz stronę z opisem funkcji platformy Azure w usłudze HDInsight.To read more about Hadoop in HDInsight, see the Azure features page for HDInsight.

Co to jest MapReduceWhat is MapReduce

Apache Hadoop MapReduce jest platformą oprogramowania do pisania zadań, które przetwarzają ogromną ilość danych.Apache Hadoop MapReduce is a software framework for writing jobs that process vast amounts of data. Dane wejściowe są dzielone na niezależne fragmenty.Input data is split into independent chunks. Każdy fragment jest przetwarzany równolegle między węzłami w klastrze.Each chunk is processed in parallel across the nodes in your cluster. Zadanie MapReduce składa się z dwóch funkcji:A MapReduce job consists of two functions:

  • Maper: Wykorzystuje dane wejściowe, analizuje je (zazwyczaj przy użyciu operacji filtrowania i sortowania) i emituje krotki (pary klucz-wartość)Mapper: Consumes input data, analyzes it (usually with filter and sorting operations), and emits tuples (key-value pairs)

  • Zmniejszenie: Wykorzystuje krotki emitowane przez mapowanie i wykonuje operację podsumowującą, która tworzy mniejszy wynik połączony z danych mapowaniaReducer: Consumes tuples emitted by the Mapper and performs a summary operation that creates a smaller, combined result from the Mapper data

Przykład podstawowego zadania MapReduce zliczania wyrazów przedstawiono na poniższym diagramie:A basic word count MapReduce job example is illustrated in the following diagram:

HDI.WordCountDiagram

Dane wyjściowe tego zadania to liczba, ile razy każdy wyraz pojawił się w tekście.The output of this job is a count of how many times each word occurred in the text.

  • Maper pobiera każdy wiersz z tekstu wejściowego jako dane wejściowe i dzieli go na słowa.The mapper takes each line from the input text as an input and breaks it into words. Emituje parę klucz/wartość za każdym razem, gdy wyraz wypada wyraz, po którym następuje 1.It emits a key/value pair each time a word occurs of the word is followed by a 1. Dane wyjściowe są sortowane przed wysłaniem go do programu do redukcji.The output is sorted before sending it to reducer.
  • Zmniejszenie sumuje te pojedyncze zliczenia dla każdego wyrazu i emituje pojedynczą parę klucz/wartość zawierającą wyraz, a następnie sumę jego wystąpień.The reducer sums these individual counts for each word and emits a single key/value pair that contains the word followed by the sum of its occurrences.

MapReduce można zaimplementować w różnych językach.MapReduce can be implemented in various languages. Język Java jest najpopularniejszą implementacją i jest używany do celów demonstracyjnych w tym dokumencie.Java is the most common implementation, and is used for demonstration purposes in this document.

Języki programistyczneDevelopment languages

Języki lub struktury oparte na języku Java i wirtualna maszyna Java mogą być uruchamiane bezpośrednio jako zadanie MapReduce.Languages or frameworks that are based on Java and the Java Virtual Machine can be ran directly as a MapReduce job. Przykładem używanym w tym dokumencie jest aplikacja Java MapReduce.The example used in this document is a Java MapReduce application. W językach innych niż Java, takich C#jak Python, lub autonomicznych plikach wykonywalnych, należy używać przesyłania strumieniowego Hadoop.Non-Java languages, such as C#, Python, or standalone executables, must use Hadoop streaming.

Przesyłanie strumieniowe w usłudze Hadoop komunikuje się z mapowaniem i zmniejszeniem za pośrednictwem STDIN i STDOUT.Hadoop streaming communicates with the mapper and reducer over STDIN and STDOUT. Mapowanie i zmniejszenie danych są odczytywane wierszowo z STDIN i zapisywane dane wyjściowe do STDOUT.The mapper and reducer read data a line at a time from STDIN, and write the output to STDOUT. Każdy wiersz odczytywany lub emitowany przez mapowanie i zmniejszenie musi być w formacie pary klucz/wartość, rozdzielony znakiem tabulacji:Each line read or emitted by the mapper and reducer must be in the format of a key/value pair, delimited by a tab character:

[key]/t[value]

Aby uzyskać więcej informacji, zobacz Usługa przesyłania strumieniowego Hadoop.For more information, see Hadoop Streaming.

Przykłady korzystania z przesyłania strumieniowego Hadoop za pomocą usługi HDInsight można znaleźć w następującym dokumencie:For examples of using Hadoop streaming with HDInsight, see the following document:

Następne krokiNext steps