「SQLを使ったクエリー処理を低遅延で実行できる『Impala』を、2013年に『Hadoop』のディストリビューションに追加する」――。Hadoopのディストリビューションを販売する米クラウデラのアメル・アワダラーCTO(最高技術責任者、写真)は2012年11月7日、東京都内で開催した「Cloudera World Tokyo」で講演し、同社の製品ロードマップなどについて解説した。
Cloudera World Tokyoは、クラウデラが日本で初めて開催する自社カンファレンスである。米本社の共同創業者でありCTOを務めるアワダラー氏が基調講演に立った。クラウデラは2013年に、Hadoopディストリビューション「Cloudera’s Distribution including Apache Hadoop(CDH)」の次期バージョン「CDH 5」をリリースする予定。CDH 5には、SQLを使ったデータ分析を高速に実行できる新しいクエリー処理エンジンであるImpalaのほか、ストレージのスナップショット機能、処理に対するコンピュータ資源の割り当てを柔軟に管理できる機能などを追加する予定だ。
Impalaは、クラウデラが2012年10月に発表したばかりの新しいクエリー処理エンジンである。Hadoopの標準的な分散処理の仕組みである「MapReduce」では、MapReduceの作法に従った専用のプログラムを開発する必要があった。それに対してImpalaでは、SQLを使ってクエリーを記述できる。また処理速度も、MapReduceを使う場合より高速であるという。アワダラー氏は、「MapReduceを使って数十分かかっていた処理が、Impalaでは数十秒で終了する。データ分析を開始してから終了するまでの遅延が、非常に短くなる」と強調した。
Javaを使わずに高速化
Impalaの処理速度が速いのは、MapReduceがJavaで実装されているのに対して、ImpalaはC++で実装されているためだ。MapReduceでは、ジョブを実行するたびにJava VMを起動しており、処理にオーバーヘッドが発生していた。C++で実装されたImpalaには、このようなオーバーヘッドがない。データを分散保存する各ノード上で、そのノード上にあるデータに対する処理を行うという基本的な仕組みは、MapReduceとImpalaで共通している。