本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)
目次
MapReduceに関するよくある疑問
前回と今回の二回で「MapReduce・Hadoop」という言葉の違いについて解説させていただいています。
前回の説明で、
- MapReduceは、Googleにより提唱された分散処理方法の名前でありソフトウェアの名前ではない
- Hadoopは、MapReduceの処理方法を核の一つとして実装したソフトウェアの名前
- Hadoopの中ではMapReduceを用いた処理が行われている
という説明をさせていただきました。今回はこのような両者の関係から浮かび上がる素朴な疑問について説明させていただきます。
疑問1:MapReduceとHadoopの違いはなぜわかりにくいのか?
この答えは、
- 現在、MapReduceの処理方法を実際に行うシステムのほとんどが実装ソフトウェアとしてHadoopを利用している
- このため「MapReduce=Hadoop」という誤った表現をしても問題が発生する場面が訪れにくい
- Hadoopの広まりにつれて両者の表現上の違いが意識されにくくなってきた
ということであろうと思われます。
疑問2:Hadoop以外でMapReduceの処理を実装したソフトウェアはないのか?
極端な言い方をすればHadoopはMapReduceの処理を実装しているソフトウェアの一つに過ぎません。とすると世の中にはHadoopの他にMapReduceの処理を実装しているソフトウェアはないのでしょうか?答えは「あります」です。以下にいくつかを挙げてみましょう。
- Skynet…Ruby言語で実装されたソフトウェアです。
- Disco…Python言語で実装されたソフトウェアです。
- ddd (distributed database daemon)…日本で最も有名なインターネット接続事業者であるIIJが行っている取り組みです。
この他にもビッグデータ向けデータベースベンダとして有名なTERADATAもプロダクトラインナップとしてMapReduceのソリューションを提供しています。上記中には、筆者が恥ずかしながら本記事執筆まで知らなかったソフトウェアがいくつかあります。しかしこれは逆にMapReduceの実装としてHadoopのシェアが高いことの裏返しだと思えるのは筆者の思い違いでしょうか。
疑問3:HadoopとMapReduceの間に知的財産権の問題は存在しないのか?
この答えは「現在(2015年9月)、問題は解決されている。」という表現が妥当であろうと思われます。
もう少し詳しく申し上げますと、
- GoogleはMapReduceに関する特許を保有している(公告番号:US7650331 B1/出願日:2004年6月18日/公開日:2010年1月19日)
- おそらくHadoopの内部コードには上記特許に抵触する部分が存在するであろうと考えられる
- Googleは、一定の条件下では自身の特許に関して他者に対して訴訟を行わない「Open Patent Non-Assertion Pledge (OPN誓約)」という姿勢をとりうる
- 2013/03/28、GoogleはMapReduceに関する10の特許に対してはOPN誓約の対象とする事を表明した。
という流れがあったのです。これにより今日我々も権利上の問題がない形でMapReduceそしてHadoopを利用することが可能になっているのです。
関連記事:
- Hadoop(ハドゥープ)とは?
- Hiveとは?
- SQLとは?
- MapReduceとHadoopの違い(1)
- MapReduceとHadoopの違い(2) (本稿)
- Impalaとは?