「これからの時代,
少し前までは企業や大学の片隅に置かれたスパコンやメインフレームの独壇場だった並列分散処理システムを,
Hadoopはまもなく開発を開始してから10年を迎えますが,
言語学から検索エンジン,ビッグデータへ
- ──ダグさんはスタンフォード大学で言語学を専攻したと伺っています。どういうきっかけでITの世界に入ることになったんでしょうか。
カッティング氏
(以下C): 本当はコンピュータサイエンスを専攻したかったのですが,当時のスタンフォードにはそういった学部がまだなかったんです。子供のころからプログラミンが好きだったので, 将来はシリコンバレーの会社で働きたいという気持ちは当時からもっていたのですが, 言語学を体系的に学んでおけば, のちのちITの世界でも役に立つだろうという思いもありました。結果として, 音声認識やテキスト検索エンジン, ビッグデータの仕事をする際にも言語学の知識を応用することができましたから。 - ──失礼ですが,
いまおいくつなんでしょうか。 C:実は来週が誕生日で,
もうすぐ51歳になります (笑)。なので, 大学卒業時はまだ1980年代半ばでした。卒業後はXEROX, 次にApple, そしてExciteに勤務しました。 - ──そのころはどんなお仕事を?
C:XEROXではずいぶん検索エンジンの研究をさせてもらいました。Appleでもテキスト検索エンジンの開発に関わり,
現在のMac OSにも搭載されている 「Spotlight」 を最初に開発したのは私なんです。Exciteに移ってからも検索エンジンの開発を続けました。検索エンジンの開発では言語の有機的なつながりの解明に加え, 大量のデータを効率よく処理していく手法が重要になります。開発を続けていくに従い, 言語学, 検索エンジン, そしてビッグデータへと研究対象が移っていきました。 - ──そういったキャリアがHadoopの誕生につながっているわけですね。ダグさんはHadoopの前に全文検索ライブラリのLucene
(現在はApache Lucene) やWebクローラのNutchを開発されていますが, いずれもオープンソースとして公開されています。これらのソフトウェアを開発するのにオープンソースを選んだ理由をお聞かせください。 C:私の大学時代は残念ながらオープンソースという概念はまだ誕生していませんでした。ですが学生時代,
フリーソフトウェアのEmacsの開発に携わっていた経験から, ソフトウェアはより多くの人が参加することでより良いものになるということはわかっていました。 もっともLuceneは開発当初
(1997年), オープンソースとして公開はしていませんでした。もちろんプロプライエタリにする気もなかったのですが, しばらく 「寝かせた」 状態にしておいたのは確かです。でも2000年ごろから徐々にオープンソースという考え方が支持されるようになってきたのを見て, 実験も兼ねてLuceneのソースコード公開に踏み切りました。結果, 本当に多くの人が開発に参加してくれるようになり, 現在も最も人気の高い全文検索ソフトウェアとして開発が続けられています。年々, 良いソフトウェアに進化していますが, これはオープンソースだからこそなせる技です。
「オープンソースの勝利」を確信した瞬間
- ──そうした経験からHadoopもオープンソースで公開したわけですね。Hadoopのアイデアを思いついたときのことをお話いただけますか。
C:HadoopはYahoo!に勤務していた時期に開発を始めました。最初のきっかけはGoogleによるMapReduceの論文
(2004年) です。MapRuduceは広域に分散したサーバクラスタを非常に効率的に扱うことを可能にするアルゴリズムです。論文を読んだとき, 私は 「Luceneの開発経験をMapReduceで応用できる」 と直感しました。Luceneは当時すでに, かなり大量のドキュメントを1台のマシンで扱うことができましたが, 億単位を超えるドキュメントを扱うなら分散処理が必要になります。LuceneとMapReduceの統合を考えていくうちに, それがHadoopの原型となっていきました。 Hadoopの開発は最初からオープンソースでやると決めていました。2005年に最初のコードを公開しましたが,
Luceneのときとは違って迷いはなかったですね。同じレベルのソフトウェアが2つあったとして, ひとつはオープンソース, もうひとつがNotオープンソースであれば, 人々は間違いなくオープンソースを選びます。汎用的なソフトウェアはオープンソースでなければ開発もクオリティも維持できず, インプリメントも困難になります。Hadoopがオープンソース以外の選択肢を取ることはありえなかったのです。 - ──オープンソース以外に選択肢はありえないというお話を聞くと,
2011年にMicrosoftがDryad (Microsoftが研究していたHadoopによく似た並列分散処理フレームワーク) の開発をストップし, 同社がHadoop支持に切り替えたことを思い出します。 C:そう,
Dryadはまさに"パーフェクトサンプル"です。Dryadに関してはちょっとした思い出があります。2007年, あるカンファレンスで私とMicrosoftの方がそれぞれ分散処理システムについて語るセッションがありました。そのとき会場からはHadoopに関しては数多くの質問が寄せられたのに, Dryadについては誰も質問しなかったのです。私はこのとき, Hadoopの勝利, オープンソースの勝利を確信しました。 誤解のないように言っておきますが,
Dryadは非常にアカデミックですぐれたテクノロジでした。現在のSparkやTezで実現していることはすでにDryadに含まれており, 機能だけを見ればDryadはHadoopの数段先を行っていたでしょう。しかしDryadはオープンソースではなく, Microsoftのプロプライエタリ技術です。人々がDryadを試したくても試せない。その点, Hadoopはオープンソースであるため誰でも入手でき, 容易にトライすることができました。オープンソースだからこそ, 事前に試すことで本番実装におけるリスクを回避できるのです。ソフトウェアはより多くの人に使われてこそ意味があるという事実を如実に示した, まさにパーフェクトサンプルだといえるでしょう。