« 技術:ElasticMapReduce | トップページ | 技術:Hadoop »

Hadoop

Hadoopに関する情報を記載します。

概要

HadoopはApacheのトップレベルプロジェクトのひとつで、大規模データを分散処理で支えるJavaフレームワークです。 GoogleのMapReduce、GoogleFileSystem(GFS)に触発されたことから開発が始まりました。

http://hadoop.apache.org/

オープンソースであることと大規模データ処理での利用が多く取り入れ始められているので、 色々な企業がVMWareのDistributionを提供しているので注意して下さい。

環境構築については、こちらを参考にして下さい。

特徴

アーキテクチャ

Hadoopは大きく二つの要素から成り立っています。

  1. MapReduce
    • Hadoopで処理を記述するプログラミングモデルです。
    • 処理は大きく3つの段階に分かれており、Map処理、Shuffule処理、Reduce処理となりこの順番で処理が実行されます。
      1. Map
        • Key,Valueの組み合わせを作成していく処理になります。
        • ユーザーが処理を記述します。
      2. Shuffle
        • Map処理の結果を入力として同じKeyペアを束ねる処理になります。
          こちらは自動で行われます。
      3. Reduce
        • Shuffle処理の結果を入力として処理します。
        • ユーザーが処理を記述します。
  2. HadoopDistributionFileSystem(HDFS)
    • MapReduceで処理するデータを扱う分散ストレージで複数マシンをひとつのストレージとして利用します。

動作イメージとしては以下のようになります。

グーグル発「Hadoop」、日本企業も利用への図を参照

利用にあたって

何時間もかかるようなバッチ処理を行う場合に向いています。

技術調査を行う場合は、HadoopWikiで調べれば大抵のことが掲載されていますのでこちらがお勧めです。※ 英語のみ

その他

ご支援、宜しくお願いします!←ポチッ!とブログランキング!

    |

    « 技術:ElasticMapReduce | トップページ | 技術:Hadoop »

    コメント

    コメントを書く



    (ウェブ上には掲載しません)




    トラックバック


    この記事へのトラックバック一覧です: Hadoop:

    « 技術:ElasticMapReduce | トップページ | 技術:Hadoop »