一身独立

素人SEの成長日記

Hadoopめも

 

1. 成り立ち

・考え方、仕組みはGoogleが発祥

・Yahoo!で発展したオープンソース

・検索エンジンのインデックスを作成するために利用

 →従来のRDBMSベースの仕組みではデータ量に負けてしまう

 →「RDBMSでは処理できない」を解決しようとしたものである

  (処理時間のこと)

・マシンパワーで対処できなかったのか?

 CPUの性能は確かに向上しているが、ディクスアクセスがボトルネックになってしまっている。

 

2. 分散IO処理

 ディスクIOボトルネックを解消させる

 →データをノードに分散させ、そのデータに対して処理を行う。

  CPUパワーを使い切ることができる。

 

3. Hadoopの有用性

 成り立ちから分かるように、「ビッグデータ」専門のアーキテクチャではない。

 IOボトルネックが発生しているシステムに大しては有効であるということ。

 マシンは立派なのにバッチが終わらない(IOに時間がかかっていて、CPUを使いこなせていない)処理には効果的である。

 しかし、分散したデータの同期、更新処理には不向きである。

 如何にして適用可能箇所を抜き出して利用できるかが鍵。

 

4. MapReduce

 Map関数、Reduce関す、Shuffle処理によって全ての処理が行われる。

 実際の処理の分散化、タスクの実行、各関数の受け渡しなどは下位の実行基盤任せ出よい。

 非常に簡単な仕組みではあるが、それ故に、複雑な処理を実現しようとすると、実装がこんなんになる場合がある。