Azure HDInsight の Apache Hadoop の概要What is Apache Hadoop in Azure HDInsight?

Apache Hadoop は本来、クラスターでのビッグ データ セットの分散処理および分析のためのオープンソース フレームワークでした。Apache Hadoop was the original open-source framework for distributed processing and analysis of big data sets on clusters. Hadoop エコシステムには、Apache Hive、Apache HBase、Spark、Kafka、その他の多くの関連するソフトウェアおよびユーティリティが含まれます。The Hadoop ecosystem includes related software and utilities, including Apache Hive, Apache HBase, Spark, Kafka, and many others.

Azure HDInsight は、フル マネージドの、全範囲に対応した、クラウド上のオープンソースのエンタープライズ向け分析サービスです。Azure HDInsight is a fully managed, full-spectrum, open-source analytics service in the cloud for enterprises. Azure HDInsight の Apache Hadoop クラスター タイプでは、HDFS、YARN によるリソース管理、シンプルな MapReduce プログラミング モデルを使用して、バッチ データを並列に処理して分析することができます。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.

HDInsight で利用可能な Hadoop テクノロジ スタック コンポーネントを確認するには、HDInsight で利用可能なコンポーネントとバージョンに関する記事を参照してください。To see available Hadoop technology stack components on HDInsight, see Components and versions available with HDInsight. HDInsight の Hadoop については、HDInsight 向けの Azure の機能に関するページを参照してください。To read more about Hadoop in HDInsight, see the Azure features page for HDInsight.

MapReduce とはWhat is MapReduce

Apache Hadoop MapReduce は、膨大なデータを処理するジョブを記述するためのソフトウェア フレームワークです。Apache Hadoop MapReduce is a software framework for writing jobs that process vast amounts of data. 入力データは、独立したチャンクに分割されます。Input data is split into independent chunks. 各チャンクは、クラスター内のノード全体で並列に処理されます。Each chunk is processed in parallel across the nodes in your cluster. MapReduce ジョブは次の 2 つの関数で構成されます。A MapReduce job consists of two functions:

  • Mapper: 入力データを使用して分析し (通常はフィルターと並べ替え操作を使用)、タプル (キーと値のペア) を出力します。Mapper: Consumes input data, analyzes it (usually with filter and sorting operations), and emits tuples (key-value pairs)

  • Reducer: Mapper で出力されるタプルを使用して、Mapper データから、より小さい結合結果を作成する要約操作を実行します。Reducer: Consumes tuples emitted by the Mapper and performs a summary operation that creates a smaller, combined result from the Mapper data

次の図では、基本的なワード カウント MapReduce ジョブの例を示します。A basic word count MapReduce job example is illustrated in the following diagram:

HDI.WordCountDiagram

このジョブの出力は、テキストでの各単語の出現回数です。The output of this job is a count of how many times each word occurred in the text.

  • まず、Mapper が入力テキストから各行を読み込み、単語に分解して、The mapper takes each line from the input text as an input and breaks it into words. 単語が出現するたびにキーと値のペア (キーは単語、値は 1) が出力されます。It emits a key/value pair each time a word occurs of the word is followed by a 1. 出力は reducer に送信する前に並べ替えられます。The output is sorted before sending it to reducer.
  • reducer は、各単語の個々のカウントを合計し、単語とその後に続く合計出現回数から成る単一のキーと値のペアを出力します。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 を実装することができます。MapReduce can be implemented in various languages. Java は最も一般的な実装で、このドキュメントでのデモンストレーションのために使用されます。Java is the most common implementation, and is used for demonstration purposes in this document.

開発言語Development languages

Java や Java 仮想マシンに基づく言語またはフレームワークは、MapReduce ジョブとして直接実行できます。Languages or frameworks that are based on Java and the Java Virtual Machine can be ran directly as a MapReduce job. このドキュメントで使用されている例は、Java MapReduce アプリケーションです。The example used in this document is a Java MapReduce application. C# や Python などの Java 以外の言語、またはスタンドアロンの実行可能ファイルでは Hadoop ストリーミングを使用する必要があります。Non-Java languages, such as C#, Python, or standalone executables, must use Hadoop streaming.

Hadoop ストリーミングは、STDIN と STDOUT 上で mapper や reducer と通信します。Hadoop streaming communicates with the mapper and reducer over STDIN and STDOUT. mapper と reducer は、STDIN から一度に 1 行ずつデータを読み取り、STDOUT に出力を書き込みます。The mapper and reducer read data a line at a time from STDIN, and write the output to STDOUT. mapper と reducer によって読み取りまたは出力が行われる各行は、以下のように、タブ文字で区切られたキーと値のペアの形式である必要があります。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]

詳細については、「 Hadoop ストリーミング」を参照してください。For more information, see Hadoop Streaming.

HDInsight での Hadoop ストリーミングの使用例については、以下のドキュメントを参照してください。For examples of using Hadoop streaming with HDInsight, see the following document:

次の手順Next steps