PowerPoint プレゼンテーション

今、僕がやっていること
藤田昭人
大阪市立大学 創造都市研究科
IIJ Innovation Institute
今、僕がやっていること
• 公募提案の内容を下敷きに・・・
– 起業に向けた事業化の準備
– そのための技術開発
• 具体的には Map/Reduce の P2P 化です
– これまでの研究の延長上にある(と思ってる)
– どんなビジネスになるのか、まだわからない
• ここに至るまでにはいろいろ紆余曲折がありました
サーチエンジンのP2P化
• 2006年12月~2007年3月頃に考えてたアイデアです
– 日銭稼ぎに追われて研究試作に着手できない
– 「研究が金になればなぁ…」という調子の良い目論見
• 構造化オーバーレイは本質的にインフラストラクチュアの技術
– ソリューションがボケるので専門家でないとわかりにくい
– それ単体ではキャリアやプロバイダ向けの提案しか書けない
– ベンチャー企業の事業化提案としては面白みに欠ける?
• コンシューマに請求するP2Pソリューションとは?
– いまさらキャリアの技術開発の片棒を担ぐのはイヤ(できればね)
– 起業後の独立性を確保するためには重要
サーチエンジンのP2P化
• Google の技術に着目してみる
– 大規模分散が前提のインフラストラクチュアだから
– 「Google」というキーワードなら一般にも受ける
– この時点で Map/Reduce をちゃんと考えておくべきだった
• 2007年4月以降に提案活動
– 全部空振りにおわりました。
– でも Google の技術を勉強したのは役に立った
公募に応募したら…受かっちゃった
• 結局「サーチエンジンの P2P 化」を提案しました。
– だって2月末が締め切りなんだもん・・・納期前でパニック状態だった
– 「若手エンジニアの育成」が目的なのに僕が受かるわけ無いじゃん
• でも1次審査(書類選考)に受かって・・・
–
–
–
–
2次審査、最終審査に進みました(両方とも面談)
応募総数は25件
最終審査に残ったのは6件
最終的に2件が採用(1件は辞退)
• 結局、唯一の候補者になってしまった
– 本当に「サーチエンジンの P2P 化」をやるの?
公募提案のリファイン
• 公募合格後に提案のリファインに着手しました
–
–
–
–
今更サーチエンジンを作ってビジネスになるの?
「コンシューマに請求する P2P ソリューション」としては?
技術的なディテールが曖昧
よく公募に合格したなぁ・・・
• で、「サーチエンジン」をどうしたいの?
– サーチエンジン・サービスを事業化する?
→ Google の1強状態なのに?
– サーチエンジン実装の販売を事業化する?
→ 既に多数の実装が出回っているよね?
• と悶絶していたら・・・
– クラウド・ブームがやってきた。
「クラウド・コンピューティング」という
バズ・ワード
• 大量のコンピュータを使うという考え方
– Google の採用面接で問われる質問?
– コンピュータを大量に使わなければならない処理が
一般化している?
• ビジネス・モデルとしては昔の賃貸モデル
– Amazon は既に事業化しているらしい
– Yahoo や Microsoft も事業化をコミットしているらしい
– そのまま国内で事業化をしてもメーカーが儲かるだけ
→ 気に入らない
• 「構造化オーバーレイと組み合わせられる?」
「クラウド・コンピューティング」という
バズ・ワード
• Map/Reduceに着目
– 当初はDHTの上に乗るミドルウェアの設計の参考
– クラウド・コンピュータのキー・テクノロジーのよう?
→ 金になる?
– 途中からは「そのまま使ってしまえばいいじゃん」
• Hadoopに着目
– 公募の最終面接でホラを吹いた「公開実験」を実現
– スクラッチビルドしている暇なってないよね
(起業まで730日)
– この際、上モノはオープンソースで行ってしまえ!!
Map/Reduceって?
• Googleが開発したプログラミング・モデル
– とGoogleの論文には書いてあった
– 主に大規模クラスターでの並列処理の記述を目的として開発
• 開発者は Map 関数と Reduce 関数さえ記述すればOK
– グリッドみたいにノードを意識しなくても良い(?)
• 大量の大規模データを一括処理するのに適している
– 大量のウェブ・ページから検索インデックスを生成
– 多数の http サーバーのログから高速にデータ検索
– その他にもいろいろ応用できそうな・・・
GoogleがMap/Reduceを開発した理由
• Webページやサーバー・ログからの派生データの生成
–
–
–
–
–
逆インデックス
さまざまな表現によるWebドキュメントのグラフ構造の表示
クロールしたページに関するホストごとの要約
頻繁に発生したクエリー・セットの日ごとの集計
計算としては比較的に素直だが対象データが極めて膨大
→ 並列実行して処理の高速化を図りたい
• サーチ・エンジンの実現だけでなく・・・
– そのユーザビリティの解析などにも広く活用している
→ Google特有の用途以外にも応用できるのでは?
Map/Reduceの利用
• Map/Reduceが利用できそうなテーマ
– データ・マイニングや情報検索の様々な用途
– ログ解析用だとさらに一般的な需要
– 既存のグリッド・アプリケーションも?
• Map/Reduceを使ってみたい。でも・・・
– GoogleはMap/Reduceの実装を公開していません
– GoogleはMap/Reduceが使えるサービスも公開していません
– あるのは論文だけ
• オリジナルではないMap/Reduce実装なら
いろいろ出回っています
Hadoopって?
• ApacheプロジェクトのオープンソースMap/Reduce実装
– 分散ファイルシステムもサポートしています。
– 実装言語はJava (Google のオリジナル・バージョンは C++)
• GoogleのMap/Reduceの完全なクローンではない
– 開発者自身は「Googleの論文にインスパイアされた」と語ってる
– 同じことができるはずだけど・・・
Google のシステムが非公開だからよくわからん
• またまた Java かいなぁ・・・
Hadoopって?
• 入手可能なMap/Reduce実装としては最もメジャー
– Googleが協力している大学の分散コンピューティングの教材
– Amazonのクラウド・コンピューティング環境の上で使う人が多い
– クラウド・ブームに乗って急速にユーザーが拡大中
• 確かにオープンソースプロジェクトなんだけど・・・
– 事実上Yahooの開発プロジェクトみたいです
– Hadoopの主要開発メンバーはYahooに雇用されてるらしい
– Yahooは50人体制でHadoopの開発を進めているとか?
Hadoopのコンポーネント
• Hadoopの実装は幾つかのコンポーネントの集合体です
– 元々はLuceneというサーチエンジン実装から分離独立
• 現時点では4つのコンポーネントから構成されています
–
–
–
–
Map/Reduce
Hadoop DFS
hBase
zookeeper
Map/Reduce
分散ファイルシステム
分散データベース?
分散ロックマネージャ
Map/Reduce
Google FS
BigTable
Chubby
• 別にGoogleのコンポーネントとシンメトリーでなくても
– マーケティング的意図を感じますねぇ・・・
Hadoop Map/Reduce
• 次のクラスによりデータフローを形成します
–
–
–
–
–
–
InputFormat
Map
Shuffle
Sort
Reduce
OuputFormat
入力データを取り込みInputSplitを生成
入力key/valueを元に新たなkey/valueを生成
keyに基づきデータを仕分け
keyに基づきデータをソート
データの集約
OutputCollectorにより出力を収集
• Googleの定義とは微妙に違うような・・・
Hadoop DFS
• Map/Reduceの前提となるデータ共有を実現
• マスタ-スレーブ・モデルによる分散アーキテクチュア
– NameNodeとDataNode
– 当然NameNodeがSingle Point of Failerになります
– SecondaryNameNodeの実装中・・・動くかどうかわからない
• Write-once-Read-manyのアクセス・モデル
– 最初に1度だけ書き込みアクセス
– 後は読み込みアクセスしかできない
– 追記可能なアクセス・モデルへ移行する計画があるらしい
Hadoop DFS
Hadoop DFS
日の丸クラウドは必要か?
• これは丸山先生の研究会で先日議論されたテーマです
• 海外では既に大規模なクラウドが存在しています
– Googleのクラウドは100万台規模
– Microsoftは300万台規模のクラウド構築を計画している
• 日本国内でも100万台規模のクラウドを構築するべき?
– もちろん「そんな必要があるのか?」という反論もある
• (意外にも)僕は状況静観の立場です・・・今のところは
日本国内で100万台のクラウドを
構築するためには?
• Map/Reduce+P2Pのお題にはなる・・・本末転倒だけど
– これが個人的なぶっちゃけた見解
• IIJ-IIでこの話をしたら・・・
– 当然「どこに事業性があるんだ!!」と突っ込まれました
– 今、マーケティング・サイドと揉めている真っ最中
– にもかかわらず・・・開発にはGoが出てる
→IIJ-IIってなんて素敵な会社
• インターネット・プロバイダにとってのクラウド
– メタ・クラウドとかインター・クラウドって話は既にあるらしい
– もし現実のものになるとまたまた悩みの種が・・・お勉強は必要
HDFSの構造化オーバーレイ化
• 目標はSingle Point of Failerの解消(ってことになるよね)
• Andrew Filesystem(Coda)のファイル・セッションに基づく
– Write-Once-Read-Manyを採用するならね
– ファイル参照に関してはそれほど悩まない
• CFSの方法でOKなんじゃないかと考えています
– ファイル更新に関しては・・・
• CFSはファイルシステムをexportする方式だから使えない
• 追記は不要なのでIvyの方法よりは単純になるだろう
– ファイル・アクセスの同期性に関しては・・・ちょっと悩ましい
• Chubbyで使われているPaxosを採用できるのかな?
• 基本的にwell knownな方法で解決できそう(?)
– 今、設計作業中です
Hadoop MRの構造化オーバーレイ化
• HDFSよりは甘くなさそうな感じです
• 最大の課題は・・・
– “データの移動より計算の移動の方がコストが低い”
– DFSでデータを配置したノードにジョブを投げる必要がある
• DFSにおいてJobSubmitを考慮したdata deployを考える
• DFSのdata deployを考慮したJobSubmitを考える
– つまり DFS と協調した Job Scheduler が必要
– 「構造化オーバーレイならでは・・・」の方策が見つけ出せる?
• で・・・
– ちょっと考えただけじゃ良くわかんない
– DFSの作業が終わったら再度考えてみるつもり
唐突ですが・・・Third Trialの復活
• 小規模クラウドを構築して公開する予定です
– ホスト総数40台・・・仮想化して136ノードになる予定
– とりあえず Hadoop を動かします
– 現在Kikker MRを動かすべく鋭意努力中です
• オリジナルは筑波の神林君が作った“はてブ”のリコメンド・システム
• Map/Reduceでリライトするとどうなるか?が技術的なチャレンジ
• ユーザー向けサンプルコードが主目的です
• β公開できるのは年末以降
– 11月からα公開 - 少数のαユーザーにアカウントを用意
• Gryfon(構造化オーバーレイ版Hadoop)も乗せる予定
– β公開に間に合わせるつもりだったんだけど・・・厳しい
– Gryfonに合わせてβ公開を遅らせるか?後付になるのか?
まとめ
• 僕は今 Map/Reduce の P2P 化をやっています
– 構造化オーバーレイを応用してHDFSとJobSchedulerを拡張します
• 公開実験Third Trialの準備をしています
– Kikker MRの開発が現時点での最優先課題です
– その詳細は第2回ソーシャルブックマーク研究会で発表する予定
• 公開実験環境の規模をP2P的に拡大していきたい
– Gryfonはそのためのシステムになりました
• これで起業ができたらいいなぁ・・・今のところ希望でしかない