開発者が語る、DataSpider Servista 3.1新機能「DataSpider アダプタ for Apache Hadoop」

Avatar
dstn


DataSpider Servista 3.1でリリースされた「DataSpider アダプタ for Apache™ Hadoop®」(以下Hadoop HDFSアダプタ)。本サイト「DataSpiderデザインパターンβ」の「 Hadoop HDFS I/O Pattern」でも紹介されている通り、このアダプタはApache Hadoopの基盤となる分散ファイルシステム「HDFS」への入出力を簡単に行うことのできる機能を豊富に持っている。Apahce HDFSアダプタを使用すれば、DataSpider Servistaが持つ強力なファイル/データ連携機能をビッグデータ分野で最大限に活用することが可能だ。
このHadoop HDFSアダプタの開発を中心となって行った、アプレッソ開発部アーキテクトの大崎瑶に本アダプタの開発の経緯やその内容について話を聞いた。
DSC_0450

▲Hadoop HDFSアダプタの開発を行った開発部アーキテクト大崎瑶

Asakusa FrameworkとDataSpiderの連携実証実験に向けて作ったアダプタがプロトタイプとなった


まず、Hadoop HDFSアダプタの開発のきっかけとなったのはどのようなことだったのであろうか?

「個人的に以前からHadoopには注目していて、HadoopとDataSpiderの連携というアイデアを持っていました。そこで、アプレッソで定期的に開催している”SNP(Something New Party)”という社内の新規アイデアのブレストミーティングで、そのアイデアを発表したんですよ。それが最初のきっかけですね。その頃、当時CTOの小野が株式会社ノーチラス・テクノロジーズ様と、Asakusa FrameworkとDataSpiderとの連携ができるといいですねという話をちょうど進めていたんですよ。ちょうどそれとマッチして、2012年の6月頃にAsasakusa Frameworkとの連携の実証実験をしようという流れになりました。それに向けて作ったのが今回リリースされたHadoop HDFSアダプタのプロトタイプになります」

pr20120703 (1) ▲Asakusa FrameworkのHDFS連携ツール「Direct I/O」と Hadoop HDFSアダプタ連携イメージ

DataSpider Servista 3.1でリリースされたHadoop HDFSアダプタでは、ファイル自体のアップロード・ダウンロード操作に加えて、XMLとCSVデータを直接読み取り・書き込みできる機能も実装されている。このプロトタイプ段階にXMLデータの機能が実装され、その後認証実験を経てCSVデータの連携機能が追加されたということだ。

「実証実験のときに、最初にXMLデータの読み書きの機能をプロトタイプとして実装したんですが、これはDataSpider自体が内部のデータとしてXML形式を採用しているため連携がしやすいことが理由でした。Asakusa Framework側はでデフォルトでCSV形式を使う設定になっており、実証実験ではXML形式を使うように設定を変更していただき行いました。この経験もありリリースの際にはCSVデータも扱えるようにしたいと思っており、今回リリースに当たってCSVも実装したんです」

それでは、このCSVデータを連携できる機能のメリットはどのようなものであろうか?

「Hadoopと連携する場合、行単位で読み取りを行うことができるCSV形式は扱いやすく都合がいいことがまず大きな理由ですね。またDataSpiderとしても、CSVデータの連携はPSP(パラレル・ストリーム・プロセッシング機能)に対応することができます。これにより、Hadoopで処理をするような膨大な量のデータに対しても、高速・低メモリ負荷でデータを送受信することができる。これは、DataSpider 3.1でリリースされた”スマート・コンパイラ”機能によりさらに使いやすくなり、大きなメリットになると思います」

png;base64dcd42dd5e71c57e2
▲データベースからCSVデータ書き込み処理で直接CSVデータを書き込むスクリプト例。PSPを利用できるので高速・低メモリ負荷の処理が可能だ

オペレーションの仕様についてさまざまな検討を重ねて
現在リリースされたHadoop HDFSアダプタが完成した


このような経緯で開発がスタートしたApache Hadoopアダプタ。最初はプロトタイプで検証を進めていったが、DataSpider Servista 3.1のキーワードが決定することに伴ってリリースに向けて大きく舵を切ることになったようだ。

「実証実験は2012年の6月頃でしたが、当時はHadoop HDFSアダプタをどのような形でリリースするかはまだ未定でした。その後、DataSpider Servista 3.1のリリースはビッグデータ時代に対応した”大容量・高速化”というキーワードで機能を開発していくことが決まり、大きな柱として先ほども話に出た”スマートコンパイラ”機能、そしてApache Hadoopに連携するアダプタをリリースすることになったんですよ。ここからリリースに向けての開発が本格化しましたね」

リリースに向けた開発の途中において苦労した点はさまざまなものがあったとのことだが、特に「Hadoopのバージョン問題」と「オペレーションの仕様」についてはさまざまな調査・検証を重ねて今のものになったという。

「課題はたくさんありましたが、そのなかでも特に悩んだのは実証実験で使用していたバージョン問題。HDFSのAPIがHadoopのバージョンによって差分があり、バージョンごとの対応が大変だということでした。APIに関しては調査をしていくと、WebHDFS REST APIというWebベースのAPIがバージョンに依存せずひとつの実装で済むことが分かり、このAPIを使用して実装を進めていくという方針が決まりました。
また、CSV形式に対応するにあたっても、最初はXMLデータと1つのオペレーションで両方の形式を扱えるようにしようと思いました。ただ、DataSpiderのXML型とテーブルモデル型でデータ形式が違い、それによりPSPに対応しているかどうかが変わるなど、1つにまとめるとどうしても使い勝手が悪くなるんですよね。それでCSVとXMLのオペレーションを分けて実装することに決めました。これの他にもオペレーションの仕様については苦労しましたね。調査やプロトタイプの検証のほか、いろいろな人の意見をヒアリングして検討した結果、現在リリースされたHadoop HDFSアダプタの仕様が完成しました」

png;base649c25cd91f730357f
▲Hadoop HDFSアダプタのオペレーション群。さまざまな利用用途に備えてファイル操作系のオペレーションも多数用意されている

ノン・プログラミングで様々な種類のデータをHadoopに収集することができる
これはビッグデータ処理システムを構築する上で大きなメリットとなるはずです


そして遂にリリースを迎えたHadoop HDFSアダプタ。開発を終えた現在、どのようにアダプタを使ってほしいと考えているのだろうか?

「やはりDataSpiderの利点と組み合わせて有効に活用していただけたらと思います。DataSpiderにはHadoop HDFSアダプタだけではなく豊富なアダプタがあります。Hadoopは大量のデータを集計・分析することに向いていますが、その大量のデータをどこからどのように集めてくるか、ということは自分で実装する必要があり、Hadoopを利用したビッグデータ処理システムのポイントになるところです。DataSpiderなら様々なデータベース、アプリケーションからソーシャル・メディアまでデータの収集はお手のものです。ノン・プログラミングでこのような様々な種類のデータを収集できるのは、Hadoopを利用したビッグデータ処理システムを構築する上で大きなメリットとなるはずです」

さらに今後のDataSpider ServistaとHadoopとの連携について、大崎は以下のように語る。

「今回のリリースでデータ収集からHDFSへデータスをストアするという流れは作れたと思います。しかしHadoopの本領を発揮するのはMapReduceによる集計・分析の部分です。Hadoopにはそれをサポートする様々なサブ・プロジェクトとして、Hive・HBase・Pig・Mahoutなどがあります。これらをサポートするオペレーションをDataSpiderに追加できれば、さらにHadoopを簡単・手軽に利用できると考えています。まだ予定としては未定ですが、チャレンジしていきたいですね」




もともとDataSpider Servistaは大容量データを高速・低メモリ負荷で処理する高い性能を持った製品であったが、3.1のリリースでHadoop HDFSアダプタとスマートコンパイラ 機能が追加されたことにより、さらにビッグデータとの親和性が増した。ビッグデータ時代のデータ連携システム基盤としてDataSpider Servistaが採用される機会が増えることは間違いないだろう。ぜひDataSpider Servista 3.1を使用してみて、そのポテンシャルを実感してみてほしい。

コメント

ログインしてコメントを残してください。

Powered by Zendesk