米MapR Technologiesは、企業向けに性能や可用性を高めたHadoop互換ソフトを開発しているベンダーである。国内では、OEM(相手先ブランドによる生産)製品の「EMC Greemplum MR」(旧称はGreemplum HD)が先行して販売されてきた。2013年4月には、日本法人「マップアール・テクノロジーズ」を設立。9月19日には、国内販売代理店2社(ノーチラス・テクノロジーズと新日鉄住金ソリューションズ)と正式にパートナー契約を交わしたことを発表。これにより、今後はEMC Greemplum MRに加え、自社ブランドでも日本市場で展開することになった。同社幹部に、ユーザーから見た自社ブランド製品の意義を聞いた。

(聞き手は日川 佳三=ITpro


日本法人の設立でユーザーが得られるメリットは。

米MapR Technologiesでワールドワイドフィールドオペレーション担当副社長を務めるSteven D.Fitz(スティーブ・フィッツ)氏
米MapR Technologiesでワールドワイドフィールドオペレーション担当副社長を務めるSteven D.Fitz(スティーブ・フィッツ)氏

 大きく二つある。一つは、販売チャネルが広がることだ。これまで日本市場に提供してきたEMC Greemplum MRの販売チャネルに加えて、オリジナルブランドの製品を、販売代理店を介して供給する。現時点での販売代理店は2社だが、今後増やしていく。

 もう一つは、これまで日本市場では提供していなかった上位エディション「M7」を入手できるようになることだ。EMC Greemplum MRは標準エディション「M5」のOEM製品であり、上位エディション「M7」は、今回の自社ブランド製品によって初めて入手が可能になる。

 ただし、自社ブランド内でのアップグレード(M5からM7へのアップグレード)が可能なように、EMC Greemplum MRからM7へのアップグレードも、同じ価格で可能だ。つまり、M5とEMC Greemplum MRは、どちらを購入しても条件は同じであり、好きな販売チャネルで購入すればよい。

 日本市場での価格は、1ノード当たりのサブスクリプション(購読)ライセンスで、M5が年額40万円から、上位エディションのM7が年額70万円からだ。なお、M5とEMC Greemplum MRは、厳密には個々の販売代理店によって値付けは変わるものの、価格もほぼ同程度だ。

M5とM7の違いは何か。

 分散データベースソフトであるHBaseの実装が、M5とM7では異なる。この結果として、M7は、M5と比べて、HBaseを、より高性能に、より可用性の高い形で利用できる。M5のサポートに寄せられた問い合わせの8割は、HBase関連のものだった。HBaseの問題を解決するためにM7を開発した。

 M5のパッケージに含まれるHBaseは、オープンソースのApache HBaseそのものだ。これに対して、M7に含まれるHBaseの機能は、HDFS互換の高速ファイルシステムであるMapR-FSの中に最初から組み込まれている。M5のMapR-FSはHDFSとNFSのインタフェースを持つが、M7のMapR-FSはHDFSとNFSに加えてHBaseのインタフェースを持つ。

 Apache Hbaseは、Apache Hadoopや標準ファイルシステムのHDFSと同様に、Javaで書かれている。スタックで言えば、OSのファイルシステムの上にHDFSが乗り、さらにその上にHadoopのMapReduce処理や、HBaseの処理が乗る。これらをJavaで開発したアプリケーションから利用する形になる。

 これに対してM7では、Apache HBaseを利用する代わりにMapR-FSに組み込まれたHBase APIをアプリケーションから直接叩く形になる。MapR-FSのファイルシステムを眺めると、ファイルと同様にHBaseのテーブルが格納されていることが見える。

 M7のHBase機能を使った場合と、米ClouderaのHadoopディストリビューション(CDH)でApache HBaseを使った場合を比較したベンチマーク試験の結果がある。50%読み込み50%更新の使い方において、ハードディスク使用時にM7はCDHの4倍の性能、SSD使用時にM7はCDHの8.1倍の性能が出ている。

HBase機能はファイルシステムの違いだけなのか。

 ファイルシステムの違いに依存したことではあるが、Apache HBaseとの一番の違いは、コンパクション(Compaction)の問題を解決したことだ。

 HDFSはライトワンス/リードメニーであり、変更を加えることができない。変更を加えることができないファイルシステムの上にランダムアクセスを前提としたデータベースを載せているのがApache HBaseであり、これには無理がある。

 HDFS上のテーブルに更新を加える際には、直接更新ができないので、メモリー上に変更内容を保持することになる。ここで、メモリー消費量が一定に達すると、HDFSの上に小さなファイルとして書き出す。これを繰り返すと、小さなファイルが大量にできる。

 このまま放置すると性能が悪化するので、どこかのタイミングで小さなファイルをすべて読み込み、ソートして1個のファイルにして再度書き込む処理を実施する必要がある。この処理をコンパクションと呼ぶ。HBaseの規模にもよるが、コンパクションがいったん起こると、数時間から数十時間という時間がかかる。

 この点、MapR-FSはそもそもコンパクションが必要ない。通常のファイルシステムと同様に更新ができるからだ。

 こうした違いにより、Apache HBaseの推奨値は、テーブル数が100個、ノード数が数百個、カラム(列、項目)の数は3個、に留まる。これに対してM7のHBase機能は、テーブル数は10億個、ノード数は1万、カラムは64個、と言っている。