次世代データ分析基盤「Apache Spark」の可能性とLinuxONE

IT・IT製品TOP > Key Conductors > 栗村 彰吾(日本アイ・ビー・エム株式会社) > 次世代データ分析基盤「Apache Spark」の可能性とLinuxONE
この記事をtweetする このエントリーをはてなブックマークに追加

IT現場の道先案内人 Key Conductors

次世代データ分析基盤「Apache Spark」の可能性とLinuxONE

データ分析 2017/02/27

ビッグデータ時代の波に乗るためのOSSとインフラ

 今回は「ITを活用しビジネスを成長させるためにはどのようなツールが必要なのか」をテーマに、前回の「Node.js」に引き続き、最新のオープンソースソフトウェア(以下OSS)ついてご紹介します。

 近年特に注目されているOSSは、本連載第5回第6回で紹介したアプリケーションプラットフォームの「Node.js」や、高速データ分析基盤の「Apache Spark」、そしてアジャイルなアプリケーション開発基盤として注目を集める「Docker」です。

 今回はデータ分析に焦点をあて、「Apache Spark」(以降、Spark)について紹介します。本連載第5回でも紹介した通り、モバイルやIoTの時代になり、以前とは比較にならないほどデータが大量に生成されるようになりました。その中で、データを素早く分析し、ビジネスに貢献する情報を得る技術は、多様化する市場ニーズやビジネス環境の変化に適応するためのキーファクターとなっています。

 では、実際に「データを素早く分析し、ビジネスに貢献する情報を得る技術」を活用している例にはどのようなものがあるでしょうか? 本稿では「The Weather Company」「Netflix」のケースを紹介します。

活用例1 The Weather Company 数十億のイベントデータから情報を発信

 気象予報サービスのThe Weather Companyでは、1日に300億以上のAPIリクエストや2億のアクティブモバイルユーザー、数十億のイベントデータが発生しています。収集されたペタバイト級(注1)のデータを分析し、メディアや航空、エネルギー、保険、政府関係機関にデータに基づいた空路情報やエネルギー需要のトレンド、天気アラートなどを提供しています(注2)。

(注1)ペタバイト級 1ペタバイトは1ギガバイトの100万倍。ここでは情報量が膨大であることを表す。
(注2)The Weather Companyの事例(Spark Summit 2016講演動画より) 
https://www.youtube.com/watch?v=0r8P5Kal9I4&feature=youtu.be

活用例2 Netflix 動画視聴の75%を独自リコメンドエンジンで生み出す

 世界190カ国以上、8600万人ものユーザーを持つ世界最大級の動画配信サービスのNetflixでは、リアルタイムでユーザーに個別のリコメンドを提供しています。

 同社は2012年、独自にリコメンド用アルゴリズムを開発しています。いまでは動画視聴の実に75%以上を、リコメンドから創出しているといいます(注3)。

 これら2つの活用例では、ビッグデータ分析のためにSparkが活用されています。

 データ分析基盤としてSparkを活用することで、ビッグデータの中から価値あるデータを見つけ、顧客に新しい体験を提供することが可能になります。Sparkのユースケースを図1に示しました。小売や流通、製造、ヘルスケア、金融などさまざまな分野の活用が挙げられます。

(注3)リコメンド用アルゴリズム 「Netflix Recommendations: Beyond the 5 stars (Part 1)」(Netflixの技術ブログ、英語) 
図1 Sparkのユースケース

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図1 Sparkのユースケース
(出典:日本IBM)

 Sparkはストリーミング機能、機械学習機能、SQLの分散処理機能を持つ、高速性や使いやすさを目指して作られた並列分散処理基盤です。

 Sparkはカリフォルニア大学バークレー校で開発され、Apacheソフトウェア財団の管理の下、オープンソースソフトウェアとして利用されており、その中でもトップレベルのプロジェクトとして現在でも拡張が続けられています。

 Sparkの処理方法である並列分散処理は、同じくOSSの「Apache Hadoop(以下Hadoop)」で確立されました。HadoopはWebサイトへのインデクシングを実現するために誕生し、データを格納する分散型ファイルシステムである「HDFS」とデータを同時並行で処理する「MapReduce」で構成されます。SparkはHadoopの並列分散処理技術を応用して開発されています。Hadoopがバッチ処理を想定したツールであるのに対して、Sparkはリアルタイム処理や機械学習の処理に適した特性を持つツールです(注4)。

(注4)Apache Spark プロジェクトのWebサイト(http://spark.apache.org/)

 Sparkが次世代の分析基盤として注目される理由は以下の点です。

・その1 インメモリ機能による処理高速化
・その2 豊富なライブラリ機能

その1 インメモリ機能による処理高速化

 従来、Hadoopのような分散型のデータ分析基盤では「処理速度がディスクI/Oのレイテンシ(遅延)に依存してしまう」という課題がありました。特にデータへの加工が多い処理では、ディスクI/Oが増加するため、処理速度が低下します。こうした課題が発生するのは、処理系の実装に利用頻度の高いデータを効率的に扱う仕組みがないことが原因です。どんなに高頻度で参照するデータであっても利用するたびに読み出しの待機時間が発生してしまうのです。

 Sparkでは独自のキャッシュ機能を持つため、サーバ内のメモリを活用して処理時のディスクI/Oを減らせます。これにより、データ分析処理の速度を大幅に向上させています。処理の種類によってはHadoopと比較して100倍も高速になることが報告されています。 Sparkは特に機械学習のような反復するジョブの処理に向いています(図2)。

図2 インメモリ機能による処理高速化

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図2 インメモリ機能による処理高速化
(出典:日本IBM)

その2 豊富なライブラリ機能

 Sparkは、基本機能を持つ「Spark Core」と、その上で稼働するライブラリで構成されています。

 Sparkライブラリは、SQLインタフェースを提供する「Spark SQL」、グラフ構造を持ったデータを処理する「Graph X」、ストリーミング処理を行う「Spark Streaming」、そして機械学習機能の「MLlib」の4つです。

 The Whether Companyの活用例では、「Spark Streaming」でストリーミング分析を行い、分析結果へのアクセスのために「Spark SQL」を活用しています。

 これらのライブラリを活用することで、リアルタイムにデータ分析を実現し、高度な分析をより簡単に構築することが可能になります。

SparkへのIBMの取り組み:開発プロジェクト支援、機械学習ライブラリの提供

 Sparkが次世代の分析基盤として注目されている中、IBMではSparkコアの開発に貢献すると共に、機械学習ライブラリである「SystemML」をSparkに提供しています。IBMによるSparkへの貢献はLinux以来最大のオープンソースコミュニティーへの供与であり、ソースコードのコントリビュート数は、開発元のDatabricsに続き、第2位です。

 また、サンフランシスコに「Spark Technology Center」を設立し、Sparkプロジェクトの推進や新機能の開発、既存のIBMソリューションへの組み込みなどを行っています。

Sparkに求められるシステム基盤要件

 Sparkを活用する際、商品のリコメンドのようにどの場面でどのようにデータを活用するかを考えることはもちろん重要ですが、実際にデータを処理するITインフラにも目を向ける必要があります。期待通りの成果を発揮するためには適切なITインフラの選定が重要です。

 分析対象データの増加に伴い、ITリソースの増強が必要になります。Sparkはデータを各サーバに分散させて並列処理させるため、一般的なサーバのようにサーバ台数を増やすことでITリソースを増強するスケールアウト型の場合、サーバ間のデータのやりとりによるオーバーヘッドが増加し、分析速度の低下を引き起こします。

 加えて、サーバ台数が増加することはシステム運用・管理の煩雑化も引き起こします。システム構成の見直しや、新たなボトルネックの発生の可能性もあります。

 また、顧客情報などの個人のプライバシーに関わるデータを分析する際には、データの漏えい防止を徹底する必要があります。

 Sparkによるデータ分析に必要となるITインフラ要件には、高度なスケーラビリティと高いセキュリティレベルが求められます。

要件その1 高度なスケーラビリティ

 スケールアップ型でITリソースを増強することで、スケールアウト型に比べより少ない物理サーバで構成可能です。物理サーバ台数が少なくなると、その分だけ並列分散処理時のサーバ間のデータのやりとりは減り、オーバーヘッドを極小化させることが可能です。スケールアップによるシステムの拡張は分析速度への影響を最小限にし、データ分析のリアルタイム性を確保します。

 また、スケールアップ型は物理サーバを新たに追加する必要がなく、システム構成の見直しや新たなボトルネックの発生を考慮する必要がないため、システムの運用・管理に影響を与えません。

要件その2 高いセキュリティレベル

 ハードウェアレベルのセキュリティ機能を持ったITインフラを用いることで、セキュリティ事故防止を実現します。セキュリティ事故の発生は企業イメージの悪化を招き、顧客ロイヤリティーの低下につながります。

データ分析基盤としてのLinuxONE

 本連載第3回第5回で既に紹介していますが、LinuxONEはハードウェアレベルでセキュリティ機能が組み込まれています。これによりデータの漏えい防止を実現、「セキュリティ事故件数0件」の実績を持っています。また、LinuxONE1台で約8000台分のサーバを統合できる優れた仮想化機能も持っています。Sparkによる分析サーバはもちろん、データベースやNode.jsなどの各コンポーネントを1台に集約することで、運用管理を効率化できるのです。

 LinuxONE1台に集約された各仮想サーバには動的リソース追加が可能であり、システムの負荷に応じて素早く、柔軟に対応することが可能です。

最先端の「コグニティブショッピングシステム」はLinuxONEとOSSで実現した

 IBMでは、アメリカのスーパーマーケットチェーン企業と協業し、Sparkを始めとするOSSとLinuxONEを活用した「コグニティブショッピングシステム」を開発しました。スマートフォンユーザーに対して、リアルタイムで「各人にとって最適な商品」に誘導することで、顧客満足度向上や売上拡大を図る仕組みです。

 このシステムでは、店舗内に設置されたビーコン(注5)で来店者の位置情報を求め、そのデータをバックエンドシステムに送信します。バックエンドシステムは誘導すべき場所への最短ルートを計算し、結果をスマートフォンに表示させます。バックエンドシステムの基盤にはLinuxONEが稼働しており、来店者の購買履歴、店舗のおすすめ商品やソーシャルメディアで話題になっている単語を分析し、来店者ごとに最も購買確率の高い商品をリコメンドします(図3)。

(注5)ビーコン この事例ではAppleが開発したBluetooth Low Energyをベースとした近距離通信プロトコルであるiBeaconを使用している。
図3 コグニティブショッピングのユーザーインタフェース

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図3 コグニティブショッピングのユーザーインタフェース
(出典:日本IBM)

 また、位置情報データや監視カメラの画像解析から得た店舗内の混雑状況をヒートマップで表示し、比較的混雑の少ないエリアの商品に誘導することで店舗内の混雑緩和を図ります(図4)。

図4 コグニティブショッピング システム管理画面

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図4 コグニティブショッピング システム管理画面
(出典:日本IBM)

 バックエンドシステムのLinuxONE上では、本連載でご紹介したNode.jsやMongoDB、SparkやDockerが起動しています。ビーコンで取得したデータはMongoDBに蓄積され、StrongLoop で処理された後、Sparkで分析されます。ソーシャルメディアのデータや在庫状況、購買履歴なども同様にSparkで分析が行われます。Sparkで分析されたデータは、StrongLoop(注6)で処理されスマートフォンに表示されます。また、これらのコンポーネントは全てDockerコンテナ上で稼働しているため、顧客のフィードバックを迅速にシステムに反映することが可能です(図5)。

(注6)StrongLoop Node.jsベースのエンタープライズ向けOSS
https://www-03.ibm.com/press/jp/ja/pressrelease/48421.wss 
図5 コグニティブショッピングシステムの構成図

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

図5 コグニティブショッピングシステムの構成図
(出典:日本IBM)

 このような分析システムにLinuxONEが選ばれた理由は、主要Linux(注7)のサポートや豊富な実績を持ち、ハードウェアレベルで高いセキュリティレベルを備え、数万もの店舗から収集される大量のデータを極めて多数のユーザーからのアクセスに対し十分かつ柔軟なスケーラビリティを有しているからです。  

 上記のスーパーマーケット企業の事例のように、市場ニーズの多様化や予測しきれないビジネス環境の変化に適応するためには、OSSの活用が鍵を握っています。OSSの活用目的は単なるコスト削減だけでなく、顧客ロイヤリティーや売上の向上といったビジネス成長に貢献することです。そしてOSSによるビジネス貢献を支えるITインフラがLinuxONEの担う役割です。

 次回はLinuxONE Community Cloudを用いて実際にSparkを動かし、簡単なデータ分析アプリケーションを作成します。

 次回もお楽しみに!

会員限定で「読者からのコメント」が読み書きできます! 「読者からのコメント」は会員限定の機能。会員登録を行い、ログインすると読者からのコメントが読み書きできるようになります。

会員登録(無料)・ログイン

Myリストへ

この記事をtweetする このエントリーをはてなブックマークに追加


この寄稿記事に掲載している情報は、掲載日時点での情報となります。内容は変更となる場合がございますのでご了承下さい。また、「Key Conductors」の寄稿記事及び当該記事に寄せられたコメントについては、執筆者及びコメント投稿者の責任のもと掲載されているものであり、当社が、内容の最新性、真実性、合法性、安全性、適切性、有用性等を保証するものではありません。


30009493


IT・IT製品TOP > Key Conductors > 栗村 彰吾(日本アイ・ビー・エム株式会社) > 次世代データ分析基盤「Apache Spark」の可能性とLinuxONE

このページの先頭へ

キーマンズネットとは
さまざまなオープンソースソフトウェア(OSS)に携わり、現在は「LinuxONE」を中心に、提案および構築を担当。お客さまのミッションクリティカルな業務にふさわしいシステムの提供に尽力する傍ら、LinuxONEの活用に関するセミナー講師として「メインフレームの価値」や「なぜ今メインフレームか」を啓蒙する活動にも従事する。

ページトップへ