ビッグデータ関連技術の多くは米国発であるため、最新のプロダクトや技術は日本では導入事例が無い=日本で知っている人が少ないという状況なので、Hadoop Worldは情報収集や交換の貴重な場です。特に機械学習系のライブラリやプロジェクトは乱立?気味で、今後も増加傾向が続くのは間違いないでしょう。Mahoutに始まり、scikit-learn、Hivemall、SAMOA、MLib、GLaphLab等々。

じゃあ、どれを使えばいいのか?という話になると思います。当分はどのライブラリというか、分析によりライブラリを使い分ける事になるかと思います。種類が豊富なライブラリは魅力的ですが、プログラム全体の品質が保証されていない、あるいは、現時点で目的とする分析に合った実装になっていない場合があります。

例えば、大規模なグラフデータを処理する場合、多くのプロダクト及びその上のライブラリはこれらのデータを分割し処理を行っています。この分割の仕方より、グラフが持つ頂点や辺に偏りが生じると、分散処理した結果の集約に時間が掛かります。このデータ分割の問題は、サンプルプログラムにあるワードカウントを使った方の中には経験済みの方も要るでしょう。

ワードカウントでは、処理対象の文書集合の中で特定のワードの頻度が高い場合、そのワードを担当したノードの処理時間が処理全体の時間を左右します。機械学習の処理の内容によりデータフロー、データ構造、アルゴリズムの並列化等々が異なり、その違いに着目した多くのアルゴリズムや実装方法が報告され、一部はライブラリとしても公開されています。

こういったHadoopのエコシステムを含むApacheのプロジェクト以外では、米国の大学(例えばCarnegie Mellon University)を中心に研究成果やそのコードが次々に公開されている動きがあります。その一例として、機械学習のフレームワークのコンパクト化が進められています。Sparkの登場により処理のリアルタイム化に近づきましたが、マシンの台数、一台あたりに要望されるスペック(特にメモリ)も上がり、処理コスト(分析用途に適したサーバの一台の一時間当たり1$との試算も出ています)の増大が課題となってきています。その課題に対し、「より少ないマシン構成で同じ処理を出来ないか?」というアプローチが始まっています。

Sparkも元はUniversity of California, Berkeleyから始まりました。Hadoop+Sparkのカバーする領域は広がっていますが、その外の世界も当然広がっており、今後も何が起きていくのかも目が離せません。

まとめ

今回の参加で、Hadoopはビッグデータの基盤として浸透し、その関連プロダクトが次々に誕生していることを再認識しました。最初の疑問の答えとしては、「Hadoopは今でも重要な基盤として存在している」であり、Hadoop Worldに参加する意義は、「周辺のエコシステムを含めた情報を比較しつつ効率的に収集できるところにある」と思います。「量が質を生む」というのはビッグデータの話だけでなく、そのような機会に巡り合えるHadoop Worldも一緒だと実感しました。

来年もHadoop Worldは9月下旬に開催される予定です。まだまだハリケーンがやってくる時期ですし、Indian summerと呼ぶには早いと思いますが、日中は暖かくて過ごし易いです。でも建物の中は冷房が利いているので、防寒対策をお忘れなく。

最後になりますが、今回の出張でお世話になった方々、特に出張中に社内のHadoop/Sparkのお世話をしてくれた皆様にこの場を借りて御礼申し上げます

川前徳章(かわまえ のりあき)
工学博士、NTTコムウェア 研究開発部 勤務。専門は情報検索、統計的機械学習、マーケティングサイエンス。現在は時系列データからの因果関係抽出・予測及びその最適化の研究と開発に従事。東京大学大学院情報学環 客員研究員。
関連記事:ビッグデータとHadoop