「Hadoop」は米Apacheソフトウエア財団(ASF)が開発するオープンソースソフトウエア(OSS)の分散データ処理ソフトウエア。当初は米グーグルが開発したバッチ処理方式「MapReduce」だけが使えたが、2013年10月に正式版がリリースされた「Hadoop 2」からMapReduce以外の処理方式にも対応可能になり、汎用的なビッグデータ処理プラットフォームへと進化している。

 Hadoop 2は、「YARN」というクラスター管理とタスクのスケジューリング管理を司る機構を追加した。YARNによって、MapReduce以外の様々な処理方式をHadoopクラスター内で同時に実行できるようになった。具体的には、MPP(マッシッブ・パラレル・プロセッシング)型の分散SQLクエリー処理やインメモリー処理、ストリーム処理などが利用可能である()。

図●Hadoopでできるのはバッチ処理だけと言うと、謎の怪人に「YARN」と殴られる(Hadoop Summit 2014でホートンワークスが示したスライドより)
図●Hadoop Summit 2014でホートンワークスが示したスライドより
Hadoopでできるのはバッチ処理だけ、と言うと、謎の怪人に「YARN」と殴られる
[画像のクリックで拡大表示]

 MPP型の分散SQLエンジンとしては、米クラウデラの「Impala」や米MapRテクノロジーズの「Drill」、米Pivotalの「HAWQ」、米IBMの「Big SQL」などがある。また、米アクティアン(Actian)や米ジェスロデータ(Jethrodata)といった、Hadoop用の分散SQLエンジンを開発する独立ベンダーも存在する。

 これまでのHadoopでも「Hive」という仕組みを使うことで、SQLクエリーをHadoop上で実行できた。しかしHiveでは、SQLクエリーをMapReduceに変換していた。Impalaをはじめとする新しい分散SQLエンジンは、SQLクエリーをMapReduceに変換せずにそのまま実行するため、Hiveに比べてSQLクエリーの処理が高速になるとしている。

 Hadoop上に「DAG(有向非循環グラフ、Directed Acyclic Graph)」と呼ぶ技術を採用した、汎用的な並列処理エンジンを作るプロジェクトも進んでいる。米ホートンワークスが中心となって開発を進める「Tez」や、米カリフォルニア大学バークレー校の「AMP Labs」が開発し、米データブリックスが今は開発の中心となっている「Spark」である。TezやSparkを使うことで、SQLクエリーや機械学習の処理を、従来のようにMapReduceに変換して実行するのに比べて、大幅に高速化できる見込みだ。