読者です 読者をやめる 読者になる 読者になる

ゼロからの技術ブログ

初学者がゼロの状態から理解するまでの軌跡を書いていくブログ

ゼロからHadoop Vol.1.0

 前回のElasticseachを調べていくうちにHadoopという言葉に出会った。

なんとなく聞いたことはあって「なんかいっぱいのサーバに分散処理させてる」くらいの認識しかなかったのでHadoopとはなんぞやというコトをまとめていきたい。

 

■目標

Hadoopを理解する。

Hadoopの概念を理解する。

Hadoopの活用方法

 

Hadoopを理解する。

Hadoop とはオープンソースとして公開されている大規模・大容量データの分散処理技術、ソフトウェア。

Web検索技術に行き詰まりを感じていたGoogleが論文として「Google File System」「Google Map Reduce」を発表、後にDougCutting氏主導の元、Javaで実装されたのがHadoopのようです。

 

Googleが発表した「Google File System」、「Google Map Reduce」 の論文はどういう理論なのかを調べてみました。

 

Google File System【分散ファイルシステム】とは

分散ファイルシステムとはコンピュータネットワークを通して共有しつつファイルにアクセスできるシステム。

 

Google Map Reduceとは

コンピューター機器のクラスター上でも巨大なデータセットに対する分散コンピューチングを支援するフレームワーク。上の分散ファイルシステムを支えるフレームワーク的な感じかな。

 

Hadoopの概念を理解する

Hadoopは三つのシステムから成り立っている。

上記の二つの論文を参考に組み立てられたHadoop Distributed File SystemとHadoop Map Reduceと、構造化データををサポートしたDB(HBase)。

 

分散処理する為のHadoop Map Reduce

MapReduceは「Map」「Reduce」「Shuffle」三つのフェーズから成り立っている。

「Map」ではそれぞれのデータにkey, valueを割り振り

「Shuffle」で割り振ったデータを統合・結合する。

「Reduce」で結合・統合したデータの処理を行う。

 

分散ファイルシステムHadoop Distributed File System(HDFS

HDFSでは管理するファイルの読み書きを高速化する為、大きなファイルを一定の大きさに分割し、複数の記憶装置に分散して保存、読み込みや書き込みだけを並列に実行できるようにしている。

どのファイルをどのように分割し、どの装置に格納したかを一元管理する「NameNode」、分割されたファイルを保存する「DataNode」の二つから成り立つ。

 

Hadoopの使い所

Hadoopの強みは数時間かかるようなバッチ処理でも複数マシンに分散して処理をし、高速化きるので、大量のデータを計算・分析する処理に向いている。

レコメンデーションの計算や統計解析などの場面では大いに役に立つ。

 

 

参考記事

https://www.ibm.com/developerworks/jp/web/library/wa-introhdfs/

Hadoop入門に最適なチュートリアルサイトまとめ・比較7つ|#mayonez [マヨネーズ]

 

 

 

 

 

 

広告を非表示にする