[OSSを理解する]

ビッグデータ分野におけるOSS最新動向─OSS鳥瞰図【第6回】

2017年7月27日(木)本多 洋司(日本OSS推進フォーラム クラウド技術部会/ビッグデータ部会)

IT Leadersは2012年5月に「OSS鳥瞰図」を作成・公開している。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。本連載はこれに基づき、主なOSSをカテゴリ毎に解説している。第6回は「ビッグデータ」カテゴリに焦点を当てる。

 ビッグデータを管理/処理/分析するならOSS──事実、多くの先進企業がOSSをベースに取り組みを進めています。ビッグデータ処理に火を付けた「Hadoop」を筆頭に、この領域には多種多様のOSSが誕生し、活用範囲(できること)が広がっているのはご存じの通り。日本OSS推進フォーラムでは、もう一つ部会がこのテーマで活動しており、2016年までの活動の一部として抽出したビッグデータ関連OSSを鳥瞰図に反映しています。

ビッグデータ処理におけるカテゴリ

 すでにビッグデータを活用して事業に活用している企業がある半面、多くの場合、沢山あるOSSの何を使えばいいかわからない、動きが速すぎてキャッチアップが困難など、取り組みあぐねているのも実情ではないでしょうか。ビッグデータ部会では、これらの疑問を解きほぐすための活動を行っています。

 一つの成果として、データの取り込みから処理、蓄積、分析の流れを俯瞰図として示し、さらに有力なソフトウェアを抽出しマッピングしました(図1)。マッピングするOSSは毎年、コミュニティにおける開発の活性度、ソースコードの品質、開発者数、サポートの有無、書籍の数、利用実態などを考慮して選定しています。2016年度においては、米Googleが開発したディープラーニング(深層学習)のツールである「TensorFlow」の評価が高く、次いでドキュメント指向データベースの「MongoDB」という二つのOSSが飛び抜けていました。

図1 ビッグデータの処理プロセスで見た主要なOSS
拡大画像表示

 図1では大きな機能ごとに下記の四つに分類しています。

  1. データ収集・検知
  2. ビッグデータ蓄積・貯蔵・その他
  3. 高速化キャッシュ/スケールアウト
  4. データ分析

 なお、この分類は世界的に一般的というわけではありません。分類をまたぐ機能を備えるOSSが存在しますし、分類名に違和感を持つ読者がいるかもしません。それでも利用する立場からは、このような分類は欠かせないとビッグデータ部会では考えています。もちろん分類をどう設定するか、2017年度以降も活動の中でブラッシュアップする考えです。ここからは図1をもとに解説していきます。

(1) データ収集・検知

 ネット上のデータを取得・保存するクローラは、大規模・分散処理ではNutch、GUIツール利用ならManifoldCFが有効と思われます。RDBなど構造化されたデータを取り出すためのツールとしては、SqoopやTalendがあります。これらを使えば収集段階におけるデータ加工も行えます。

 非構造化データの収集にはFluentdやFlumeが人気です。特にFluentdは日本語で解説したドキュメントがありますので、日本で人気があります。一方のFlumeはHadoopの商用ディストリビューションに含まれていますので、Hadoopとの相性がいいのが利点です。IoTにおける街頭カメラの映像データや各種センサーデータなどをリアルタイムに処理する必要があるデータには、StormやApache S4の利用が活発になっています。

(2) データ蓄積・貯蔵・その他

 ビッグデータを高速に蓄積するストレージソフトウェア(ファイルシステム)は、スケールアウト可能な分散ファイルシステムが主流です。様々なものがありますが、HadoopのサブプロジェクトであるHDFSが活発です。Cephはオブジェクトストアやブロックデバイスとしても利用できます。

 並列分散処理はビッグデータの中心ともいうべきところで、日々、進化し続けています。MapReduceは多く使われていますが、現在はYARNやSparkが急成長しています。分散SQLクエリー処理が必要であればImpalaを併用することで処理が可能です。またSQLデータウェアハウスとしてはFacebookが開発したHiveがあります。活発な活動により、当初より100倍近くの性能向上を達成しています。

(3) 高速化キャッシュ/スケールアウト

 ビッグデータを高速処理するために、データ構造がシンプルなNoSQLが主流になっています。高速化のため構造をキーとバリューだけにしたKVSとしてはHBaseやRedis、Riakがあり、IoTにおけるセンサーデータの取り込みなどに適しています。もっと複雑なデータ構成を扱えるものとしてはMongoDBやCassandraがあります。

 今回の鳥瞰図には間に合いませんでしたが、グラフDBも注目を集めています。関係性を表現するようにしたデータモデルで、代表的なものとしてはNeo4jがあります。鳥瞰図の次のバージョンには追加する予定です。

(4) データ分析

 集めたデータを分析することで、ビッグデータは生きてきます。これらを分かりやすくするための出力機能やレポート機能なども重要です。統計解析には統計解析機能が付いたプログラミング言語Rが使われています。ビジュアル表示はできませんが、容易に使い始めることが可能です。PentahoはBIプラットフォームに必要な機能がそろっており、JasperReportsは帳票ツールも備えた BI ツール群です。日本語情報も多いので、利用の際にはより適したものを選択してください。

 ビッグデータの活用技術として現在、注目が集まっているのが機械学習とディープラーニングです。ハードウェアの性能向上やクラウドの利用、有望なOSSの登場により、一気に実用域に入りました。2015年開催の「Amazon Picking Challenge」では画像認識においてパターンマッチングの手法により競っていましたが、2016年には機械学習一色になりました。特に深層学習では、難しいと言われていた囲碁で「AlphaGo」というソフトウェアがプロ棋士に勝利したこともあり、取り組みが進んでいます。

 この分野は、前述したGoogleのTensorFlow、あるいはMicrosoftのCNTK、AmazonのDSSTNEなど大手IT企業によるオープンソース化が目立ちます。このことだけ見ても注目度が分かりますし、知名度や実績という点から利用OSSの勢力図が一気に変わりつつあります。日本のプリファードネットワークスのChainerも、有力株の一角です。

◇ ◇ ◇

 ビッグデータをビジネスに活用したいが、どのOSSを採用すればいかわからない方々には本鳥瞰図を手がかりに検討していただければと思います。今回、掲載できていないOSSも少なからずありますが、これらの中にも要所要所で有効なものがあります。もっと詳しく見てみたい方は、日本OSS推進フォーラムで一緒に活動してみませんか。

筆者プロフィール

本多 洋司
日本OSS推進フォーラム クラウド技術部会/ビッグデータ部会 メンバー
株式会社PFU サービス支援統括部 商品企画部
 

バックナンバー
OSSを理解する一覧へ
関連記事

ビッグデータ分野におけるOSS最新動向─OSS鳥瞰図【第6回】IT Leadersは2012年5月に「OSS鳥瞰図」を作成・公開している。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。本連載はこれに基づき、主なOSSをカテゴリ毎に解説している。第6回は「ビッグデータ」カテゴリに焦点を当てる。

PAGE TOP