プライベートクラウド環境でもSparkの活用を容易に
アナリティクス領域でのSparkの活用には、大きく分けて2つの用途が考えられる。ひとつが高速なバッチ処理による大量データの加工や集計だ。これは従来Hadoopが得意としてきたところだが、より複雑で高度な処理、繰り返し処理が多い機械学習などをSparkならインメモリの分散処理で高速に行える。
もうひとつは、ビッグデータに対するアドホックな分析だ。データサイエンティストなどの分析担当者が、Sparkが提供するシェルを利用することで、様々な分析アルゴリズムを手軽に試行錯誤できるようになる。バッチ処理やアドホックな分析の環境を簡単に利用でき、かつ分析環境が独立して他のユーザーの環境の影響を受けないようにしたい。
そういったニーズを満たすための一つの答えが、Bluemix上の「Spark as a Service」だ。Sparkで分析するデータをクラウド上に用意できれば、すぐに分析が可能だ。BluemixのSparkではEGOという分散処理エンジンを利用しており、YARNやMesosなどSparkで一般的に使われるスケジューラーをこのEGOに置き換えている。
「EGOはIBMがハイパフォーマンス・コンピューティングの世界で培ってきたスケジューリング技術を搭載しており、より柔軟で詳細なスケジューリングが行えます」(藤岡氏)
このようにSpark as a Serviceは便利で使いやすい環境だが、一方でコンプライアンスの制限から自社のデータをパブリッククラウドに置けない場合もある。さらには、大規模なバッチ処理をするような場合も、ビッグデータをパブリッククラウドに移動しなければならず、Spark as a Serviceには向いていない。
こうした場合、パブリックではなくプライベートクラウドのSpark環境が欲しくなる。それを実現するのが「IBM Platform Conductor for Spark」(以下Platform Conductorと略記)だ。
現状、Sparkを利用しようとすればHadoopのクラスタを構築し、その上にSparkを搭載するのが普通だ。その際、大規模なクラスタを構築し運用するのは大変なので、ユーザーや分析用途ごとに少ないノード数のサイロ化したクラスタ環境を構築してしまうのが現実だ。これではクラスタの管理も煩雑になり、計算資源も有効利用できない。これでは、多ノードで分散処理し高速化するSpark本来のメリットも十分に享受できない。
この課題を解消するにはHadoopクラスタにSparkを導入し、さらにその上にマルチテナントを実現できる仕組みも搭載しなければならない。これは、規模の違いはあるが「Spark as a Service」の環境を企業内に作るのと同じことになる。
そう考えると、一般の企業でそれだけの環境を用意するのはそう簡単ではないだろう。そもそもSparkはまだまだ新しい技術でもあり、Hadoop環境にSparkを載せるだけでもそれなりに手間がかかり面倒なものだ。
「Platform Conductorを使えば、プライベートクラウドでのSpark環境を容易に実現できます。ユーザーはSparkを使いたいのですが、そのために必ずしもHadoopを運用したいわけではありません。実際、Hadoopのコンポーネントはたくさんあり、Sparkとそれらを適切に組み合わせるのは容易ではありません。Platform Conductorを使えば、SparkのためにHadoopを別途導入する必要はなく、基本的にはPlatform Conductorのファイル1つを配布するだけですぐに使えるようになります」(藤岡氏)
Platform Conductorでは、Bluemixと同様に分散処理のエンジンにEGOを用いている。さらにクラスタの運用管理には、GUIツールも用意されており、そこから容易にユーザーごとに利用するインスタンスグループを作ったり、そのノード数の増減を行ったりすることが可能だ。
またSparkのランタイムは、現状3ヶ月に1度くらいの頻度で更新されている。Platform Conductorではこのランタイムの更新も、GUIを使って簡単に行える。さらにSparkの環境はPlatform Conductorの上で完全に独立した形で運用できるので、ユーザーごとにランタイム更新を行うかどうかなども柔軟に制御可能だ。これで、ユーザーがどのバージョンのランタイムを使うかは自由に選ぶことができる。
もう1つPlatform Conductorの特徴となっているのが、HDFSと互換性のあるIBM独自のIBM Spectrum Scale(旧GPFS)という分散ファイルシステムがあることだ。「IBM Spectrum ScaleはIBMのスーパーコンピュータの技術であるグリッドコンピューティングの成果」(藤岡氏)であり、HDFSよりも柔軟性が高く、OSから直接ファイルシステムをマウントして利用することも可能だ。
そのためPOSIXのコマンドなどを用いファイルシステムへ直接アクセスすることもできる。「Hadoopの面倒な作法なしで、データを直接IBM Spectrum Scaleに入れられるのもかなり便利です。Platform Conductorで、ユーザーにはSparkのためにHadoopよりも優れた足回りを提供できます」と藤岡氏は強調する。