ビッグデータ分析基盤として名を馳せている Apache Spark ですが、Azure 上では、HDInsight Spark という名前で提供されています。HDInsight Spark はただ単にマイクロソフトが、OSS のSpark をAzure に乗せたのではなく、Hortonworks のHDP(Hortonworks Data Platform)をベースのプラットフォームとしています。またHDP に加えてさらに 下記のようなAzure ならではのメリットを提供しています。
クラスタ構築・スケールが簡単
クラスター構築・ノードの増減がAzure ポータルからボタンを数回クリックするだけで構築できてしまいます。初期の構築はたったの15 – 30分以内で完了です。これはクラウドならではのメリットでしょう。
マイクロソフトの サポート付き。SLA 99.9% を提供。
すぐにデータ分析などの作業を開始可能
デプロイ後は、Jupyter Notebook、Anaconda が最初からインストールされており、すぐに分析作業などを開始することができます。また各種BI(PowerBI、Tableauなど)も標準でサポートしており、Spark で作ったテーブルをBI で可視化することが簡単にできます。
信頼性の高いストレージと高パフォーマンスのストレージ
ストレージには、Azure Blob ストレージをデフォルトで採用しています。Blob ストレージは同一データセンター内で自動的に3つの複製を持っており、耐障害性が非常に高く、またAzureの他のサービスとの連携性が高いことからデフォルトで採用されています。(※ HDFS ももちろん利用可能です)また、Azure Data Lake Store もストレージとしてオプションで利用可能です。Data Lake Store はアクセス時に、Azure AD 認証を必要とするためセキュリティが非常に高いです。またBlob ストレージに比べてパフォーマンスも優れており、Blob ストレージに比べて、高いレベルでの分析環境を提供することが可能です。
Kafka + Spark
Kafka とSpark をマネージドサービスとして提供されています(プレビュー)。現時点でKafkaをマネージドサービスとして提供しているクラウドベンダは少ないのではないでしょうか。Kafka になじんだ開発者の方は是非ご利用を。
Microsoft R Server + Spark
こちらもマネージドサービスで提供されております。分散処理が難しいR のコードをSpark の分散環境で動作させることが可能です。
仮想ネットワークへの対応
Azure の仮想ネットワークにSpark クラスタを参加させることが可能です。クラスタ構築時にメニューから仮想ネットワーク一覧ができきますので、そこから該当するネットワークを選択するだけでセットアップ完了です。
Livy を使ってリモートから実行
リモートからSparkジョブを投げるためのインタフェース、Livy (OSSプロジェクト:livy.io 参照)というREST IF が標準で組み込まれており、ジョブの投入・監視を行うことが容易に可能です。
開発者向けのIDE プラグイン
Eclipse と IntelliJ 向けの プラグインを無償で提供しています。これによりIDE からSpark ジョブの投入やモニタリングが出来るようになります。またプラグインにはScala や Java のサンプルコードやテンプレートも付属しており開発効率を高めるだけでなく、さらにはローカルPC 上でアプリを動かすための仕組みをついているため、簡単に開発を開始することが可能です。
Spark Streaming 向けの機能
Kafka を使ってストリーム分析を行う方もいるのではないかと思いますが、似たような機能のAzure IoT Hub や Event Hub からのストリームイベント受信を標準でサポートしています。
いかがでしょうか?上記の内容はOSS の Apache Spark で対応しようとすると、相当大変だと思われますが、HDInsight Spark を使うと標準で入っているので、非常に大きなメリットがあるものと思います。