ビジネスや社会活動におけるビッグデータの重要性が益々高まる中で、それを支えるテクノロジーとして、大規模データの分散処理フレームワーク「Apache Hadoop」が注目を集めてきた。一方で、Hadoopを活用したシステム開発の難易度の高さや用途による得意・不得意も浮き彫りになってきた。
そこで関心が高まっているのが、Hadoop環境をベースとしても動作する分散処理フレームワークの「Apache Spark」である。Hadoopと同様に大規模データの分散処理に対応しながら、Hadoopが不得意とする領域での性能を向上させると共に、従来よりも容易に開発できる環境を整えた。2015年6月には、IBMが「今後10年間で最も重要なオープンソースプロジェクト」と位置付けて、大規模なリソースを投入すると発表したことでも話題になった。
今回は、事業企画などにたずさわるビジネスパーソンに向けて、Sparkの特徴を解説すると共に、Sparkを支援するIBMの活動を紹介しよう。このような特徴を理解することは、ビッグデータに関するビジネスを企画・推進する際にも、大いに役に立つだろう。
コンピュータやネットワーク技術の進化が、クラウドやビッグデータといった、これまでと全く異なるデジタル環境を可能にした。特にビッグデータは、モバイルソーシャルゲームやWebサービスにおける膨大なアクセスログの解析、エンタープライズ分野における顧客行動やIoTデータの分析など、新たなビジネスチャンスを生み出す源泉として、注目を集めている。
一般社団法人 日本情報システム・ユーザー協会(JUAS)が、2015年4月に発表した企業IT動向調査2015によると、企業におけるビッグデータの活用の現状および今後(3年間)の予測では、「活用済み」(13.9%)、「試験活用中・活用準備中」(12.9%)、「検討中」(21.3%)となっており、検討中を含めると半数近い企業が何らかの形でビッグデータを活用に向けて動いている。特に、売上高1兆円以上の企業では、「活用済み」(17.6%)、「試験活用中・活用準備中」(29.4%)、「検討中」(29.4%)と、極めて高い割合となっている。
このように普及が進むビッグデータ活用では、それを支えるテクノロジーについても、きちんと理解しておくことが重要かつ不可欠であろう。クラウドでスモールスタートが可能になったと言われているが、手戻りが発生すれば、ビジネス機会を逃すことにもつながるし、不得意な分野で無理に活用しようとすれば、十分な成果が得られない場合もあるだろう。
そこで、ビッグデータを支えるテクノロジとして注目を集める「Spark」について、日本IBMのアナリティクス事業部 第二テクニカルセールスにおいて、Spark、Hadoop、ストリームコンピューティングといったビッグデータの先端エリアにおけるテクニカル・プロフェッショナルとして活躍中の、貝嶋 創氏に解説してもらった。社内では「Sparkハンター」と呼ばれているエキスパートだ。
ビッグデータ処理のデファクトスタンダードHadoopの特徴と限界
「まず、Apache Hadoopについて、おさらいしておきましょう。Hadoopは、オープンソース・大規模データの分散処理フレームワークで、ビッグデータ処理技術の中核を担っています」(貝嶋氏)
これまで、ERPに格納されるような構造化データは、リレーショナルデータベースを活用して処理してきた。さらに、多様な形式の膨大なデータを処理・分析する場合には、データウェアハウスを構築していた。しかし、データウェアハウスは、データを分析する軸を設計するのにも、それなりの時間が必要になる。システム構築にも、極めて高いコストがかかっていた。
それが、Hadoopの登場で劇的に変わった。クラウドの活用と相まって、短期間かつ低コストで、大規模な分散データ処理環境を実現できるようになったのだ。
「しかし、実際にはHadoopを利用するのは難しいという現実があります。まず、Hadoopのプログラミングモデルに採用されているMapReduceによるアプリケーション開発は、それほど簡単ではないことです。また、Hadoopは、一括処理には向いていますが、多段階処理や数秒程度の連続した処理などには向いていません。従来のHadoopでは、ディスクへの読み書きが大量に発生して、どうしてもボトルネックになってしまうのです。
つまり、1台のマシンでは処理しきれないような、膨大で多様なビッグデータを分析する切り札であったHadoopにも、開発速度と実行速度の両面で限界が来ているのです」(貝嶋氏)