Apache Hadoopは皆様ご存知の通り、ソースコードが公開されているオープンソースソフトウェア(OSS)です。OSSは費用面で「無料で利用できる」、同義で商用利用でも「ライセンス費がかからない」点で企業システムでも活用が進んでいます。

 しかしOSSの本質はそれらと違うところにあります。OSSの魅力は、FLOSS(Free/Libre and Open Source Software)にもあるように、ソースコードのレベルで自由にソフトウェアを利用できる、というライセンスに支えられた開発モデルにこそあります。ソースコードを公開することで、多様な動機を持った開発者が次に示すような成果を取り込むことができます。

  • 学術的研究成果を普及させたい
  • 自分の技術(力)を自慢したい
  • 世の中に貢献したい
  • 機能を追加していこう
  • バグを修正していこう
  • ただ、楽しい

コミュニティーとは

 OSSには、多様な成果を取り込む過程で磨き抜かれたその品質と、将来性があります。IT活用の先進企業がOSSに積極的に取り組むのはそれゆえです。

 Apacheソフトウエア財団はOSSのそのような成果を受けつけ、維持する団体です。Apache HadoopもApacheソフトウエア財団より提供されています。Apacheソフトウェア財団の始まりは、企業システムで早くから広く採用されてきたWebサーバー、Apache HTTP Serverです。

 多くのOSSプロジェクトは、同じ技術に関心のある複数の技術者が携わるオープンな「コミュニティー」という形でソフトウエアの設計と開発が進められています。ソースコードはもちろん、仕様決定からバグ管理まで開発プロセスも開示されています。

  しかし、誰でもそのコミュニティーに参画して仕様決定、ソースコードの改訂が出来る訳ではなく、特に有能な人、経験がある人達がコアメンバーとなって担当します。コアメンバーには、コードの受け入れや、競合するコード間の調整を担当するといった権限が付与されます。コアメンバーとなるには審査などを受け、コミュニティーの承認を得なければなりません。Hadoopでのコアメンバーに相当するのはプロジェクト管理委員会(PMC)でしょう。

 この合意プロセスや基準はコミュニティーによって違いがありますが、「多くのバグを修正してきた」「コミュニティーに、あるコンポーネントを寄贈した」などの実績があると受け入れられやすいと聞きます。そしてプロジェクトによっては、最後にある程度試験や課題のようなものも用意される場合が多いようです(図1)。

図1●コミュニティーでの開発
図1●コミュニティーでの開発

 このような個々の技術者のコントリビューション(貢献)がOSSを進化させています。そして、プロジェクトに貢献している技術者をコントビューター(貢献者)と呼ぶことがあります。さらに、正式にコミュニティーに参画して開発に携わるようになるとソースコードを改変できる権限が付与されます。

 このソースコードを改変してソースコードのレポジトリ(トランクと呼ばれます)に書き込むことを「コミットする」と呼び、そのコミットをする人を「コミッター」と呼びます。OSSコミュニティーの世界でコミッターとなることは、技術者にとっての「憧れ」でもあるでしょう。Apache Hadoop Commonのコミッターの一覧はこのURLで参照できます。

 ここを見ると、どのような企業がApache Hadoopを利用して、投資しているかも分かります。米ホートンワークス、米ヤフー、米クラウデラ、米リンクトイン、米フェイスブック、米ツイッターなど有名企業に属しているコミッターたちが日々Hadoopを開発しています。

 貢献と言っても、1つのオープンソースプロジェクトへの関与は1年を越えることはざらにあります。それを良心に基づく「貢献」だけで達成するのは困難です。企業から収入を得ようという野心や欲望も、長い期間にわたる作業と、素晴らしい成果の創出を支えます。

 このように様々な背景を持つ開発者を受け入れつつ、しかもある程度統制のとれた開発ができるのは対象とするソフトウエアのライセンスにおいて、「ソースコードの利用の自由」が定められているからです。ただし、その自由の意味はソフトウエアのライセンスによって異なることに注意が必要です。OSSのライセンスとして主なものに、BSD(Berkeley Software Distribution)ライセンス、GPL(GNU General Public License)、LGPL(GNU Lesser General Public License)やApacheソフトウェア財団 (ASF) が規定しているApache License等があり、それぞれ利用者に付与される自由の種類が違います。詳細は説明しませんが、実行、読解、改変、再配布の権利は共通に保証されていると考えて下さい。そしてApache HadoopはApache Licenseを採用しています。