R&Dトレンドレポート
第7回 Hadoopを使って分散処理をやってみよう!
さて今回から新しいテーマです。
分散計算フレームワークであるHadoopを導入から実践までを連載します。よろしくお願いします。
Googleの技術から生まれたHadoop
わたしたちは日常,
あそこの店の情報を知りたい,
世界中の何億というWebページについて文言によってインデックス化してなければとうていできない芸当です。そしてウェブページは新たに作られ,
答えは,
Mapreduceの技術そのものは論文で公開されており,
しかし驚くべき事に,
Hadoopで開発されているシステムとGoogleのシステムは,
表1 CoogleのMapreduceとHadoopの比較
機能 | Googleでは… | Hadoopでは… |
---|---|---|
ファイルシステム | Google File System | Hadoop Distributed File System |
計算フレームワーク | Mapreduce | Hadoop MapReduce |
データベース | BigTable | Hadoop HBase |
この連載では主に,
Hadoop MapReduceの概要
最初に書いたように,
ずいぶん簡略化された図になりましたが,
繰り返しになりますが,
Hadoop Distributed File Systemについて
Hadoop Distributed File System
ブロック単位に分割することで,
スケールアップ
表2に一例を挙げます
表2 UNIX/
UNIX/ | HDFSコマンド | 処理の概要 |
---|---|---|
ls | hadoop dfs -ls | HDFS内のファイルリストを出力する。 |
rm -r | hadoop dfs -rmr hdfspath | HDFS内のファイルやディレクトリを再帰的に削除する。 |
put | hadoop dfs -put localpath hdfspath | ローカルのファイルやディレクトリをHDFSにコピーする。 |
get | hadoop dfs -get hdfspath localpath | HDFSのファイルやディレクトリをローカルにコピーする。 |
そしてブロック化されていることは,
Hadoop MapReduceについて
Hadoop MapReduce
- ① Mapタスクは,
データの最初の入力を受け持つタスクで, この処理においてデータはキーとバリューの形式に変換されます (変換します)。 - ② Mapされたデータはキーバリュー形式で出力され,
キー順にソートされ, さらにキーごとにバリューを配列にまとめた状態でReduceタスクに渡されます。 - ③ Reduceタスクは,
受け取ったキーについてバリューを処理し, 最終的な出力を行います。
このような流れでMapReduce処理が行われますが,
つまり,
しかしこれだけではまだMapReduceらしさは発揮できていません。ここで重要になってくるのが,
極端な例を出すと,
ざっくりと説明してきましたが,
バックナンバー
R&Dトレンドレポート
- 第26回 最終回を迎えて
- 第25回 マッシュアップ開発のススメ[その11:モバイル版アプリケーションを作ろう⑤]
- 第24回 マッシュアップ開発のススメ[その10:モバイル版アプリケーションを作ろう④]
- 第23回 マッシュアップ開発のススメ[その9:モバイル版アプリケーションを作ろう③]
- 第22回 マッシュアップ開発のススメ[その8:モバイル版アプリケーションを作ろう②]
- 第21回 マッシュアップ開発のススメ[その7:モバイル版アプリケーションを作ろう①]
- 第20回 マッシュアップ開発のススメ[その6:PC版フロントエンドの構成③]
- 第19回 マッシュアップ開発のススメ[その5:PC版フロントエンドの構成②]
- 第18回 マッシュアップ開発のススメ[その4:PC版フロントエンドの構成①]
- 第17回 マッシュアップ開発のススメ[その3:バックエンドのシステム構成]