分散処理フレームワークHadoopの魅力
Hadoopとは、Apache ソフトウェア財団で開発されている、大規模データ処理のための分散処理フレームワークである。Google が自社の大量データを高速に処理するために開発した計算手法(MapReduce)と分散ファイルシステム(GFS)を、フリーソフトとして設計・開発したものである。
Hadoop の魅力は、大規模データ(ビッグデータ)を分散処理する環境が容易に構築できるところにある。従来型の処理環境では処理を細分化することが難しく、高性能なコンピュータを使っても長時間かけないと結果が出ないような問題を、MapReduce の処理に組み直すことにより簡単に処理の並列化が可能となる。クラウド環境の普及により、一時的に多数のコンピュータが簡単に利用できるようになったため、応用可能性が飛躍的に広がってきている。
たとえば、料理レシピサイトを運営するクックパッドでは、Hadoopを使って1年分の「たべみる」データを解析している。推定では7000時間かかるところを30時間程度で解析できたそうだ。
Hadoopの課題は技術者・ノウハウの不足
このようにビッグデータ時代には非常に魅力的なHadoop環境だが、使いこなすのにはそれなりのノウハウが必要だ。筆者は Hadoop 環境を2008年頃に手元のパソコン数台で試してみたことがある。この時は、サンプルプログラムは動かせたものの、自分がやりたい処理を独自にコーディングしようとしてとても手こずった。何よりも問題なのは、計算した結果が本当に正しいものか自信が持てなかったことだ。少量のデータセットで検証して合っていたとしても、実際に大規模データで分散処理させた時に正しく計算できているのか、その時には結局判然としなかった。
Hadoop 上でそのまま MapReduce 処理をコーディングするのは上述のように非常に難しい。そこで、Hadoop 環境上で特定の処理を行う上位のフレームワークが、同じく Apache のプロジェクトとして開発が進んでいる。分散データベースシステム HBase や、機械学習・データマイニングライブラリ Mahout などが著名である。これにより、多くのユーザは自分のデータを用意するだけで、ある程度の分散処理は実施できるようになってきた。
しかし、それでも Hadoop ベースの分散処理を使いこなすのは難しい。ドキュメント化されたノウハウがまだあまり蓄積されていないため、自信を持って使いこなせる技術者の数が圧倒的に少ないのが現状だろう。Hadoop環境を基盤とした分散処理環境が今後さらに普及するには、今よりもさらに簡易に利用可能なパッケージ化を行うとともに、技術者向けの開発・運用ノウハウの蓄積が重要である。
既存技術(SQL)との融合
既存の技術者との親和性を考えると、データ処理言語の代表である SQL を使って分散処理ができると、アプリケーション開発への障壁はそれなりに解消される可能性はある。実際に、Apache でも SQLライクな言語が使えるHadoop 上の環境 Hive が開発されている。
こうした Hadoop を SQL で利用するという取組は、商用製品でも一部始まっている。例えばデータストレージの最大手 EMC では、データウェアハウス向けの製品群 Greenplum で、Hadoop と SQL RDBMSの融合環境を提供している。また、Micorosoft社は SQL Server と Hadoop の連携を可能とする Hadoop Connector のベータ版(コミュニティテクノロジプレビュー版)の提供を2011年8月25日に開始した。
このように、いきなりすべて新しい Hadoop 上で開発するのではなく、簡単なところは慣れ親しんだ SQL で処理し、本当に分散処理が必要なところだけを Hadoop で処理するようにすれば、実行可能な技術チームを集めることは比較的容易になるだろう。技術者は常に新しい技術を身につけるべきだし、それを求めるビッグデータ活用ニーズもよく理解できるが、人材育成にはそれなりの時間がかかる。0からすべて始めるのではなく、技術者がキャッチアップできるだけのソフトランディングも必要である。
本文中のリンク・関連リンク:
- 分散処理フレームワークHadoop
Hadoop上の上位フレームワークの例:- HBase … Hadoop 上で稼働する分散データベース
- Hive … Hadoop 上で稼働するデータウェアハウスシステム。SQLライクな HiveQL言語が利用できる。
- Mahout … Hadoop 上で稼働する機械学習・データマイニングライブラリ
- Hadoopでのデータ処理が試されたクックパッド「たべみる」
クックパッドのレシピ情報の履歴から、入力したキーワードに対する年間の推移が分析できる。 - Microsoft Hadoop Connector for SQL Server の提供を発表したMicrosoftの SQL Serverチームのブログ “Parallel Data Warehouse News and Hadoop Interoperability Plans”
- EMCが提供するデータウェアハウス向け製品群EMC Greenplum DB/HD
SQLベースの Greenplum DBと、Hadoop ベースの Greenplum HD が連携可能。