今年で誕生10周年を迎える、オープンソースソフトウェア(OSS)の「Apache Hadoop」。今や、分散処理基盤の代名詞としてその名が使われるケースも多く、数多の大手企業が導入を明かし、相当数の関連プロダクトが登場している。他に類を見ない成功を納めたプロダクトと言えるだろう。

果たして同プロダクトは、今日の発展に至るまでにどのようなプロセスを歩んできたのか。本誌は、「Cloudera World Tokyo 2016」で来日したHadoopの生みの親、Doug Cutting 氏に開発の経緯や、ターニングポイントについて話を聞いたので、その様子をご紹介する。

Hadoopの生みの親で、米Cloudera チーフアーキテクトのDoug Cutting 氏

インターネットバブル崩壊! 今後の備えで全文検索エンジンを開発


――まずは、Hadoopの開発に至る経緯についてお伺いさせてください。Cutting さんは、Hadoopに着手する以前にも、「Apache Lucene」や「Apache Nutch」といったプロダクトを開発されていました。これらのプロダクトを開発するきっかけは何だったのでしょうか?

最初のプロダクトであるLuceneを開発/リリースしたのは1990年代の後半ですね。私は1997年当時、米Exciteで働いていましたが、ちょうどインターネットバブルが崩壊に差し掛かっていた時期で、今後の身の振り方を考える必要があると感じていました。

何かプロダクトを生み出せないかと考えていたところ、新しい全文検索エンジンのアイデアが浮かびました。それを形にしたのがLuceneです。Exciteでは週3日働く契約でしたので、残りの週2日Luceneの開発に費やしました。完成したのは3ヶ月後でしたね。

一方、Nutchは、Luceneをベースに開発したクローラーです。2002年から2005年の3年かけて開発しました。Luceneを使っていた会社から機能追加の依頼を受けたのがきっかけです。当時はフリーのエンジニアという立場でしたが、15~20社と数ヶ月単位で契約して働いていました。その空き時間をNutchの開発に使っていました。

――その後、Nutchの拡張性を高めるためにHadoopが誕生したわけですね。米Yahoo!在籍時にHadoopが生まれたという話は読んだことがありますが、Yahoo!とHadoopの関係を教えていただけますか?

正確に言うと、Hadoopのプロダクト自体はYahoo!入社以前に完成していました。Yahoo!に入社したのは2006年1月でしたが、その前にGoogleの論文を参考にしながらNutchにMapReduceの仕組みを取り込んだんです。ちなみに、そのときの分散ファイルシステムの名称は、「HDFS(Hadoop Distributed File System)」ではなく、「NDFS(Nutch Distributed File System)」でした。

面白いテクノロジーを組み込めたので、成功する予感があり、米IBMをはじめとする何社かに声をかけましたが、興味を示したのはYahoo!だけでした。2005年当時、私たちはNutchを20台のマシンで運用していましたが、Yahoo!は自社環境で試しながら、このシステムをより拡張性/信頼性の高いものにしたいと考えていたようです。

Yahoo!に入社した際、分散処理部分のソフトウェアに対してHadoopという名称を付けました。Apache Software Foundation(ASF)でNutchからプロジェクトが切り離されたのはその翌月でしたね。

――開発当初、Hadoopはどの程度普及すると見込んでいたのでしょうか?

そのときは、Hadoopをどうこうしたいという考えはありませんでしたね。それよりも、高性能の検索エンジンを作って、多くの検索ユーザーの役に立ちたいという想いが強かったです。

私は、Stanford大学で言語学を研究していました。そこから検索エンジンに興味を持ちはじめたのですが、検索エンジンを作るにはソフトウェアの知識が必要なので勉強し実装を始めたというのが、一連のプロダクトに携わったそもそもの経緯ですね。

検索エンジンの開発に限らず、何かの研究でユーザーを支援できないかとは考えていましたが、その時はHadoopがここまで広がるとは思いもよりませんでした。

Hadoopは広告配信をはじめ、スマートフォン向け基盤で広く使われていますので、スマホユーザーの数が、Hadoopが接触しているユーザーの数とほぼ等しいと考えていいと思います。総数は実に10億人です。開発者冥利に尽きますが、こうした結果になったのもすべては、良い時期に始めて、良い場所に居られて、良い支援が得られたから。運が良かったとしか言いようがありませんね。