Azureの鼓動:ITmediaオルタナティブ・ブログ (RSS) Azureの鼓動

クラウド戦役をZガンダム視点でわかりやすく解説するブログ+時々書評。

ないものはつくるしかない。ソフトウェア開発者の基本姿勢としては正しいと思う。
Windows AzureにHadoopのようなMapReduce処理を肩代わりしてくれるフレームワークが
内包されていればそれはそれで便利かもしれないが、ないものは嘆いても仕方ない。
マイクロソフトが開発者に活躍の余地を残してくれていると前向きに考えてみてもらえると
ありがたいのだが、さすがにインスパイアするための呼び水は必要だろう。

ということで、先日マイクロソフトMVPのみなさまを対象としたOpenDayというイベントで
ご紹介させていただいたAzureでMapReduceを実装してみたデモの概要を、このブログでも
簡単にとりあげてみたい。先にネタバレしておくと、これは我々のカウンターパートである
マイクロソフト本社のアーキテクトエバンジェリストWade Wegnerが中心となって
作成したもので、日本にも何度か来ているアーキテクトSimon Guestも一枚かんでいる。

MapReduceというとなにか特殊なモノに感じてしまう方もいるかもしれないが、基本的には
問題を小分けにして分散処理させて、結果を寄せ集めるだけの簡単な処理にすぎない。

そこで、Windows Azureの構成要素であるWebRole、WorkerRole、Queue、Tableを
組み合わせて実現しようとすると自然と下図のような感じになる。

Azure_mapreduce

もちろん、個々のハードウェアの故障率の読めないクラウド環境において、タスクの
異常終了を関知して他の処理にひきとらせたり、負荷を検知してタスクの大小を
器用に振り分けたり、タスクの完了を厳密に把握したり、終了したタスクの待ち合わせを
最小化できるよう問題分割に何らかの賢いアルゴリズムを持ち込んだり、と
工夫の余地は山ほどある。

今回のデモでは、それら実用面で必要となるであろうポイントを一切無視して、
単純に「素数を表示」するというシンプルな仕組みを MapReduce 的に実現している。

Primenumbers_2

処理に使用するNode数と素数を探索する上限を指定して「Map」ボタンを押すと、
WebRoleが処理を分割してWorkerRoleに引き渡す処理を行う。今回は単純に
「その数が素数か否かを判定する」という単位にJOBを分割しているのでMap処理で
特に悩むことはない。データをTableに、処理要求をQueueに書き込むだけである。

次に、「Execute」ボタンを押すと、各ノードのWorkerRoleがQueueを調べて自分が
処理するJOBを拾って素数かどうかを判定し、結果をTableに書き込む。

そして最後に、「Reduce」ボタンを押すと、Tableから結果をひろって表示する。

それだけである。どうだろう?「このくらいなら自分にもできそうだ!」と思って
いただけたら大成功。WindowsAzureはあくまでクラウド上でアプリを動かす
プラットフォームでしかないため、その上で稼働するアプリを作り上げてゆく過程では
個人の開発者やソフトウェア開発企業に多くのビジネス機会があるのである。

MapReduce的な発想をとりこんだアプリをつくるもよし、汎用的なMapReduce
フレームワークをつくるもよし、いろんな角度でWindowsAzureと向き合うことができる。
米国やインドなどを中心に世界中の開発者が試行錯誤している段階なので、
そこに入り込んで最先端なギークたちと戯れるもよし、その成果物が形になって
利用可能になるまで待つということでも、まあよいだろう。

こちらのDavid Chappell取材記事でもコメントされているように、マイクロソフトが自前の
クラウド的な分散処理系を実用レベルで一般向けに投入してくるのはもう少し先のことに
なりそうである。やはり本命は今のところDryadの登場を待つことになる。

MapReduceのことを考えていたら、ふと、昔のR11くらいの Oracle Applications を
思い出してしまった。今で言うOracle社のERPであるE-Business Suiteにも、当時から
コンカレント・プログラムという枠組みがあって、主にバッチ処理を担っていたのだが、
生産管理・計画系の処理でほぼMapReduce的に実行しているものもあったように思う。

まだまだ若輩の私でさえ昔を回顧してしまうのは、今までみんながやりたくてもその都度
当時の技術的限界にさいなまれ、超大規模処理に発展できなかったことを、
ハードウェアの進化とクラウドのスケールアウト的なプログラミングモデルを組み合わせ、
今度こそ形になるのではないかという期待が、自然とこみあげてしまうためであろうか。

ちなみに、今回のデモではWorkerRoleもC#で記述しているが、計算の性格によっては
Visual Studio2010以降でサポートされる関数型言語のF#を利用してみるのもよいだろう。
道具立てはそろっている。

ないものはつくるしかない。というわけで、最後のオチは昨日と同じく

「ねだるな、勝ち取れ、さすれば与えられん」 by アドロック・サーストン

---
ご要望にお応えして、プロジェクトファイル一式を公開することにした。
期間限定となる可能性が高いので入手はお早めに。
VisualStudio2008SP1およびJulyCTPのAzureSDKとVisualStudioToolsで構築した
Azureの開発環境が必要。

砂金 信一郎

Special

- PR -
コメント
いさご 2009/11/13 19:01

みなさまからの熱いご要望にお応えしてMapReduceのプロジェクトファイルをのせました。
諸事情により、PDCがはじまったら一度ひっこめるかもしれませんのでダウンロードはお早めに。
使い方がよくわからん、という方はご利用をお控えくださいませ。もちろんノンサポート。完全自己責任で。

いさご 2009/11/13 20:27

すみません。大事なことを書き忘れました。
パスワードは windowsazure です。


コメントを投稿する
メールアドレス(必須):
URL:
コメント:
トラックバック

http://app.blogs.itmedia.co.jp/t/trackback/77444/22273573

トラックバック・ポリシー


» このブログのTOP

» オルタナティブ・ブログTOP



プロフィール

砂金 信一郎

砂金 信一郎

マイクロソフトでクラウドコンピューティングやWebサービスを中心とした啓蒙活動を行うエバンジェリスト。

詳しいプロフィール

最近のコメント
カレンダー
2012年2月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
カテゴリー
エンタープライズ・ピックアップ

news094.gif 富士通元社長の山本卓眞氏が残した次代へのメッセージ
富士通の社長、会長を務めた山本卓眞氏が亡くなった。哀悼の意を込めて、日本のIT産業界の大御所が残した次代へのメッセージを紹介しておきたい。(2/6)

news094.gif Facebook就活はもう古い?
約260人のブロガーが、ITにまつわる時事情報などを日々発信しているビジネス・ブログメディア「ITmedia オルタナティブ・ブログ」。その中から今回は「就活」「都心の雪」「ソーシャルメディア」などを紹介しよう。(2/4)

news094.gif 東北をコットンの生産地としてブランディングしたい──リー・ジャパン・細川取締役
塩害に強い綿の生産で東北に新たな産業を作りたい。オーガニックコットンの採用など、環境負荷を下げるジーンズ生産に取り組んできたリー・ジャパンの新たなチャレンジとは──。(1/30)

news094.gif 東北から始まるイノベーション
企業のICTを活用と若手IT技術者による東北発のイノベーションが、中長期的な震災復興の鍵となる。(1/27)

news094.gif 貧困国の雇用を創出する印刷屋、丸吉日新堂印刷の挑戦
全国から約2万7000件の名刺制作を受注をする札幌の小さな印刷会社の成功の秘密は、地道な社会貢献にあった。(1/16)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。

Special

- PR -

サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ