Azure Databricks を使ってみよう

この記事は、2018 年 6 月 19 日 に Data Platform Tech Sales Team Blog にて公開された内容です。

 

Microsoft Japan Data Platform Tech Sales Team

大蔵 一功

今回は 2018 年 3 月に GA となった Azure Databricks をご紹介します。

Azure Databricks とは

公式ドキュメントの冒頭では、

“Azure Databricks は、Microsoft Azure クラウド サービス プラットフォームに最適化された Apache Spark ベースの分析プラットフォームです。Apache Spark の創始者たちと共に設計され、Azure に統合された Databricks では、ワンクリックでのセットアップと効率的なワークフローのほか、データ サイエンティスト、データ エンジニア、ビジネス アナリストが共同作業できるインタラクティブなワークスペースが実現されています。”

と説明しています。

その通りなのですが(誤解を恐れずに)もっと簡単に言ってしまうと、 Azure Databricks(以下、 Databricks ) は、(面倒な)クラスターの構築や管理を気にせずに、Spark を利用できるサービスです。Spark を利用する|したい目的は、インメモリ処理という特徴を活かした機械学習であったり、ストリーミング処理であるはずなのに、クラスターの構築や構築後のクラスター管理といった目的以外のタスクが重く、利用するまでのハードルが高いという印象をお持ちの方もいらっしゃると思います。Databricks をご利用いただくことで、そういった本来の目的以外のタスクを気にせずに、Spark をご利用いただくことが可能です。特にデータサイエンティストやデータアナリストの方には、おすすめのサービスです。

利用開始

まずは、 Azure Portal から ”Databricks” と検索し、デプロイを開始します。ワークスペースの名前、サブスクリプション、リソースグループ、価格帯 (Standard / Premium) を入力、選択します。価格帯の Standard と Premium の主な違いは、 Premium では Databricks 内部のリソースに RBAC を設定できる点です。詳しくは、こちらをご覧ください。とりあえず一人で触ってみる場合は、 Standard で問題ないと思います。

※ 利用可能リージョンについては、こちらをご覧ください。

デプロイが完了すると、作成した Databricks の Overview にリンク (Launch Workspace) が表示されます。リンクをクリックすると Azure Databricks ポータルにリダイレクトされます。Databricks の操作は、こちらのポータルから行います。

databricks3

クラスターの作成

まず最初にクラスターの作成を行います。 Workspace ホームの [Cluster] か、左側のウィンドウから [Clusters] – [Create Cluster] でクラスター作成画面に移動します。

image

クラスター作成時に選択する項目を表にしました。

# 設定項目 説明
1 Cluster Mode デフォルトは Standard 。Serverless Pool を選択した場合、Spark SQL と Python と Rのみの利用
2 Cluster Name クラスターの名前(任意)
3 Databricks Runtime Version Databricks のランタイムのバージョン。Spark のバージョンと利用したいインスタンスあわせて選択する
4 Python Version クラスターの Python のバージョンを選択
5 Driver Type Driver Node のインスタンスを選択。デフォルトは Worker Node と同じインスタンス
6 Worker Type Worker ノードのインスタンスを選択。
7 Min Workers / Max Workers Autoscaling を有効にした場合、最小の Woker 数と最大の Worker 数を選択
8 Auto Termination 設定した時間内にクラスターに対して処理が実行されてない場合、クラスターを停止

Autoscaling と Auto Termination は、 Databricks の特徴的な機能です。 Autoscaling を有効にした場合、処理実行時のリソースの利用状況に応じて、最大 MAX Workers で設定した Worker 数まで自動的にスケールします。ジョブ実行が終了すると Min Workers で設定した Worker 数に戻ります。Auto Termination は、設定した時間の間、クラスターに対して処理が実行されなければ、クラスターを停止します。再開する場合は、 Workspace のクラスター画面からを ”Start” する、あるいはノートブックからスタートすることも可能です。Auto Termination を設定ただくことで、利用していない間の課金を抑えることができます。

必要な項目を入力後、[Create Cluster] をクリックし、しばらく待てばクラスターがプロビジョニングされます。

ノートブックの作成

次にノートブックを作成を行います。 Workspace ホームの、左側のウィンドウから [Home] を選択し、Workspace 右側にある矢印をクリックし、[Create] – [Notebook] を選択します。

image

Notebook の名前、使用する言語、ノートブックに記述した処理を実行するクラスターを選択し、ノートブックを作成します。ノートブックが作成されれば、Jupyter Notebook のように処理を記述し、インタラクティブに実行することができます。

image

作成したノードブックの左上にはクラスターが表示されています。ノートブックからクラスターを Attach / Detach をすることができるので、処理を実行するクラスターを任意で変更することが可能です。

最後に

すでに、Azure では HDInsight という Hadoop サービスを提供しています。Databricks と HDInsight の主な違いは、以下です。

  • Databricks はクラスターの停止が可能(停止中は課金されない)
  • Databricks はオートスケール設定が可能
  • Databricks では、 Spark のみ利用可能
  • HDInsight では、Spark だけでなく、 HBase / Kafka / Hive LLAP / Storm など目的に応じてクラスターの種類を選択可能

どちらのサービスにも特徴はありますが、とにかく早く Spark を利用したいという方には Databricks のほうが、楽だと思います。

今後は、 Databricks の各機能、 Azure 他サービスとの接続や権限周りについて触れていきます。

参考情報

Webiner : アプリケーション開発者のためのAzure Databricks入門

セッション動画 : 【de:code 2018】DA10 ~ビッグデータとAIのスケーラブルなサービス基盤~ Azure Databricks とは何なのか