今、僕がやっていること 藤田昭人 大阪市立大学 創造都市研究科 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はそのためのシステムになりました • これで起業ができたらいいなぁ・・・今のところ希望でしかない
© Copyright 2024 ExpyDoc