OKIYUKI99 Blog

データ分析や日常に関するブログ

hadoopとか

最近,データベースの分散処理技術について非常に流行ってる.

とりまググッて色々調べたことをメモる.

■背景
・インターネットの普及により大規模データが蓄積!

  • Webページで考えると200億ページ×20KB = 400TB
  • 世界で作成されたデータ量
    • 2009年:0.8ZB
    • 2020年:35ZB

→データ処理の効率性が必要,分散並列化

上記の解決方法

  • お金:大量のマシンで.パワープレイ.
  • 並列プログラミング
    • MPI(Message Passing Interface)
    • MapReduce
      • 大規模データ処理を行う問題に特化


hadoop
・大規模分散計算フレームワーク
オープンソースインフラストラクチャ

googleの基盤ソフトウェアのクローン

・Yahoo ResearchのDoug Cutting氏が開発

  • Dougの子供の持っているぬいぐるみの名前(笑)

Javaで記述されている

  • しかし,"Hadoop Streaming"という拡張パッケージを用いて、C/C++RubyPythonなど言語と標準入出力を用いてMapReduce処理を書くことができる

・開発したYahooはもちろん,FacebookIBMAmazonも使用

  • 楽天はレコメンド管理システムに使用
  • NTTデータは渋滞情報の可視化システムに使用

・2011/7月現在,日本語の資料はほとんどない.

Hadoopの特徴的な機能

  • Scalable
  • Economical
    • 汎用プラットフォームによるクラスタにまたがってデータと実行を分散できる.クラスタは数千オーダーでも対応可能
  • Efficient
    • データを分散させることで,ノード間で並列に実行できる.そのため,実行速度が速い.
  • Reliable
    • 自動的にデータを複数コピーし,失敗を契機にタスクの移動を行わせる.


■hBase
hadoopの上に作られた大規模分散データベース

Javaで記述されている


MapReduce
hadoopの上に作られた大規模データを大量のマシンで並列に処理するための分散計算フレームワーク

  • Mapフェーズ

・大量の情報を分解→必要な情報を抜き出して出力

  • Reduceフェーズ

・Mapフェーズで抽出された情報を集約→それに対して計算を行い,結果を出力


■Mahout
Hadoop上で動く機械学習ライブラリ

・サポートする手法

  • クラスタリング,パターンマイニング,分類,行列計算
  • まだまだ手法は揃ってない様子


■Pig
・大規模データセットを解析するためのプラットフォーム



■参考
・『CodeZineHadoop、hBaseで構築する大規模分散データ処理システム 』

・『CodeZineHadoopのインストールとサンプルプログラムの実行 』

・『グーグル発「Hadoop」,日本企業も利用へ』

・『Hadoopで,かんたん分散処理』
http://techblog.yahoo.co.jp/cat207/cat209/hadoop/

・『Googleの基盤クローンHadoopについて-スライド』

・『Googleの基盤クローンHadoopについて-ビデオ』

・『MapReduceによる大規模データを利用した機械学習

・『Rと並列化の現状について』