1 / 26

MapReduce と P2P

MapReduce と P2P. 藤田昭人 大阪市立大学 創造都市研究科 IIJ Innovation Institute. 自己紹介(1). 社会人大学院(博士課程)の学生です 大阪市立大学大学院 創造都市研究科に在籍しています 2006年春に修士号を取得しました 試作システムが完成しなかったので進学しました 研究テーマは“構造化オーバーレイの応用”です P2Pテクノロジーの1つに分類されています “分散ハッシュテーブル”というとわかりやすいかも? 広域自律分散アーカイブの実現を目指しています. 自己紹介(2). 元々は18年間サラリーマンをしていました

candie
Download Presentation

MapReduce と P2P

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MapReduceとP2P 藤田昭人 大阪市立大学 創造都市研究科 IIJ Innovation Institute

  2. 自己紹介(1) • 社会人大学院(博士課程)の学生です • 大阪市立大学大学院 創造都市研究科に在籍しています • 2006年春に修士号を取得しました • 試作システムが完成しなかったので進学しました • 研究テーマは“構造化オーバーレイの応用”です • P2Pテクノロジーの1つに分類されています • “分散ハッシュテーブル”というとわかりやすいかも? • 広域自律分散アーカイブの実現を目指しています

  3. 自己紹介(2) • 元々は18年間サラリーマンをしていました • UNIXカーネルのスペシャリストでした • 6年ぐらいマネージャーも経験しました • 大学院進学を機にフリーランスに転向 • っていうか・・・サラリーマン稼業が嫌になったから? • 今は IIJ Innovation Institute で研究員をしています • 同社の第1回公募の合格者です • 2年で起業することをコミットする公募です • 2010年には自分の会社を設立しなければならない・・・

  4. 「クラウド・コンピューティング」というバズ・ワード (1) • 未だ謎の多いバズ・ワードです・・・ • 昨年の11月のコンファレンスでGoogleのCEOが語ったのが最初 • Google の採用面接で問われる質問? • 今年の年始あたりには・・・ • Googleのサーチ・エンジンのアーキテクチュアを多目的に利用 • Google自身はAppEngineのプロモーションがしたかった?→ Webで汎用的なアプリケーションも開発できる • AmazonのEC2やS3は既に事業化されていたけど・・・→ 当時は「あまりにも低水準なサービス」との評価が多かった • ところが・・・

  5. 「クラウド・コンピューティング」というバズ・ワード(2)「クラウド・コンピューティング」というバズ・ワード(2) • 現在 Amazon の事業が大当たりしているように見える • ITコストを節約する手段として利用されている? • “PaaS (Platform as a Service)”という用語まで出現 • エンタープライズ向けにサーバー仮想化手段としてのアピール • クローズドな環境にオープンソース系からの反発も拡大中 • バズ・ワードが登場して1年・・・ • 今秋のコンファレンスなどで再定義が試みられるか? • 推進派と反対派のバトルになっちゃうのかな・・・ • で、Googleアーキテクチュア活用の話はどこに行ったの?

  6. Googleのアーキテクチュア(1) • スタンフォード時代は・・・ • プロトタイプ・システムだけあってゴチャゴチャしてる

  7. Googleのアーキテクチュア(2) 各種アプリケーション • 今は・・・ • 大分洗練された(第4世代?) Map/Reduce 分散並列処理 BigTable Chubby 分散ストレージ Google Filesystem (GFS)

  8. Googleのアーキテクチュア(3) • Google Lab が開発した主要コンポーネント • MapReduce 分散計算フレームワーク • http://labs.google.com/papers/mapreduce.html • BigTable 分散データベース • http://labs.google.com/papers/bigtable.html • Google Filesystem 分散ファイルシステム • http://labs.google.com/papers/gfs.html • Chubby 分散ロックマネージャ • http://labs.google.com/papers/chubby.html • 各々論文で概要が紹介されています。

  9. Map/Reduce • Googleが開発したプログラミング・モデル • とGoogleの論文には書いてあった • 主に大規模クラスターでの並列処理の記述を目的として開発 • 開発者は Map 関数と Reduce 関数さえ記述すればOK • グリッドみたいにノードを意識しなくても良い(?) • 大量の大規模データを一括処理するのに適している • 大量のウェブ・ページから検索インデックスを生成 • 多数の http サーバーのログから高速にデータ検索 • その他にもいろいろ応用できそうな・・・

  10. GoogleがMap/Reduceを開発した理由 • Webページやサーバー・ログからの派生データの生成 • 逆インデックス • さまざまな表現によるWebドキュメントのグラフ構造の表示 • クロールしたページに関するホストごとの要約 • 頻繁に発生したクエリー・セットの日ごとの集計 • 計算としては比較的に素直だが対象データが極めて膨大→ 並列実行して処理の高速化を図りたい • サーチ・エンジンの実現だけでなく・・・ • そのユーザビリティの解析などにも広く活用している • 問題は・・・実装は公開されていない

  11. Hadoop(1) • ApacheプロジェクトのオープンソースMap/Reduce実装 • 元々Lucene(検索エンジン)の一部として開発されていました。 • 分散ファイルシステムもサポートしています。 • 実装言語はJava (Google のオリジナル・バージョンは C++) • GoogleのMap/Reduceの完全なクローンではない • 開発者自身は「Googleの論文にインスパイアされた」と語ってる • 同じことができるはずだけど・・・Google のシステムが非公開だからよくわからん

  12. Hadoop(2) • 入手可能なMap/Reduce実装としては最もメジャー • Googleが協力している大学の分散コンピューティングの教材 • Amazonのクラウド・コンピューティング環境の上で使う人が多い • クラウド・ブームに乗って急速にユーザーが拡大中 • 確かにオープンソースプロジェクトなんだけど・・・ • 事実上Yahooの開発プロジェクトみたいです • Hadoopの主要開発メンバーはYahooに雇用されてるらしい • Yahooは50人体制でHadoopの開発を進めているとか? • 使い方は・・・ • 東大の大田さんのCodeZineの記事を見ていただくとして

  13. Hadoop(3) • Hadoopの実装は幾つかのコンポーネントの集合体です • 現時点では4つのコンポーネントから構成されています • Map/Reduce 分散計算フレームワーク Map/Reduce • Hadoop DFS 分散ファイルシステム Google FS • hBase 分散データベース? BigTable • zookeeper 分散ロックマネージャ Chubby • 別にGoogleのコンポーネントとシンメトリーでなくても • マーケティング的意図を感じますねぇ・・・

  14. Hadoopの利用 • Hadoop Map/Reduceのチュートリアルがあります • http://hadoop.apache.org/core/docs/current/mapred_tutorial.html • Hadoop Wiki にいろいろな利用事例も紹介されています • http://wiki.apache.org/hadoop/PoweredBy • 詳細の情報が公開されているのは Nutch のようです • http://lucene.apache.org/nutch/ • Lucene を利用したオープンソースの検索エンジンです • Hadoopが同梱されており並列的なクローリングが実行できます • 実は Hadoop の開発者が作ったみたい・・・

  15. コンピューティング・クラウド • 僕が勝手に作った言葉です • “クラウド・コンピューティング”が“サーバー仮想化サービス”なら“Map/Reduceを使った分散計算サービス”は別の用語で呼びたい • インターネット上に浮かぶクラウドでシームレスに実行できる • クラウドはP2P的に形成される→計算結果は参加者で共有 • どんな使い道があるの? • いろんな人が作った特徴あるインデックスがたくさん集まる→ 利用者は自分の目的に合ったインデックスで検索→ 集めれば Google とは全く違った検索エンジンができる • 事業性は?・・・これから考えます。

  16. IIJ-II 公開実験 • とりあえずインデックスを作れる環境を用意しなくっちゃ • 無料で使える実験系でいろいろ試してみると良いかと・・・ • 小規模クラウドを構築して近日公開する予定です • 研究員の特権を生かしてホスト40台を調達しました • 今月末にはハードウェア・OSのセットアップは完了(予定) • とりあえず Hadoop を動かします • 現在 Kikker MR なるアプリケーション開発に鋭意努力中です→ 詳細は後日発表する予定です • β公開(一般公開)できるのは年末以降の見通し • 11月からα公開 (少数のαユーザーにアカウントを用意) • 2ヶ月間でHadoopのチューニングを頑張ります

  17. まとめ • クラウド・コンピューティングは謎の多いバズ・ワード • “サーバー仮想化サービス”として定着しつつある? • “Google アーキテクチュア”の応用はどうなるの? • Map/Reduceはやっぱり有望なニュー・テクノロジー • Hadoop を使えばみんなお手軽に体験できます • シームレスに活用できるクラウドがあったらいいよね • 取り合えず公開実験を始めちゃいます • 頑張って年末までに形にするつもりなので・・・ご期待ください • Hadoopのチューニングに関心をお持ちの方→個別にご連絡を

  18. Hadoopの分散化アプローチ • マスタースレーブ・モデルに基づく Client Client Client Client Master Slave 0 Slave 1 Slave 2 Slave 3 JobTracker TaskTracker TaskTracker TaskTracker TaskTracker NameNode DataNode DataNode DataNode DataNode

  19. Hadoop DFS • Map/Reduceの前提となるデータ共有を実現 • マスタ-スレーブ・モデルによる分散アーキテクチュア • NameNodeとDataNode • 当然NameNodeがSingle Point of Failerになります • SecondaryNameNodeの実装中・・・動くかどうかわからない • Write-once-Read-manyのアクセス・モデル • 最初に1度だけ書き込みアクセス • 後は読み込みアクセスしかできない • 追記可能なアクセス・モデルへ移行する計画があるらしい

  20. Hadoop DFS

  21. Hadoop DFS

  22. コンピューティング・クラウド S S S S S S S S S S S S S S C C S C S S C C S S C S S C S S C S C S S C S C C S C

  23. Hadoopの構造化オーバーレイ化 • 複数のスレーブ・ノードでマスターを肩代わり Client Client Client Client Slave 0 Slave 1 Slave 2 Slave 3 JobTracker TaskTracker TaskTracker TaskTracker TaskTracker NameNode DataNode DataNode DataNode DataNode

  24. HDFSの構造化オーバーレイ化 • 目標はSingle Point of Failerの解消(ってことになるよね) • Andrew Filesystem(Coda)のファイル・セッションに基づく • Write-Once-Read-Manyを採用するならね • ファイル参照に関してはそれほど悩まない • CFSの方法でOKなんじゃないかと考えています • ファイル更新に関しては・・・ • CFSはファイルシステムをexportする方式だから使えない • 追記は不要なのでIvyの方法よりは単純になるだろう • ファイル・アクセスの同期性に関しては・・・ちょっと悩ましい • Chubbyで使われているPaxosを採用できるのかな? • 基本的にwell knownな方法で解決できそう(?) • 今、設計作業中です

  25. Hadoop MRの構造化オーバーレイ化 • HDFSよりは甘くなさそうな感じです • 最大の課題は・・・ • “データの移動より計算の移動の方がコストが低い” • DFSでデータを配置したノードにジョブを投げる必要がある • DFSにおいてJobSubmitを考慮したdata deployを考える • DFSのdata deployを考慮したJobSubmitを考える • つまり DFS と協調した Job Scheduler が必要 • 「構造化オーバーレイならでは・・・」の方策が見つけ出せる? • で・・・ • ちょっと考えただけじゃ良くわかんない • DFSの作業が終わったら再度考えてみるつもり

More Related