【Databricks 入門】クラスタの作成

本記事では Azure Databricks のワークスペースから UI でクラスタを作成する方法について書いていきます。

# クラスタ設定
早速ですがワークスペースログイン後、左にある「 Clusters 」タブを選択しクラスタ作成画面へ移動しましょう。
![2020-09-02_11h47_45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/9fca79a1-b0e1-76b4-c0ec-019a05c99b89.png)

下図のような画面に遷移したら「 Create Cluster 」ボタンを押下します。
ちなみにここでは「 Interactive Clusters 」で稼働中のクラスタを一覧で確認することができます。
※今回は記事用のワークスペースなので何も稼働してません。
![2020-09-02_11h54_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/09b480df-c7c7-554e-1be8-471523e965a1.png)

### 詳細設定
ではクラスタを作成するための設定を行っていきます。

- **Cluster Name**
管理上のクラスタ名を記入します。

- **Cluster Mode**
「 standard 」と「 high concurrency 」から選択できます。
シングルクラスタ実行は「 standard 」
マルチクラスタ実行は「 high concurrency 」
high concurrency は Scala が使えないなどの制限もあるので選択前にドキュメントを確認されるのをおすすめいたします。

- **Pool**
クラスタ・オートスケーリングの起動時間短縮が行なえます。
ただし、アイドル状態のインスタンスを保持するための料金が別途必要となります。

- **Databricks Runtime Version**
今年(2020年)6月にリリースされたばかりの Spark 3.0 もバッチリ利用することができます！
「 ML 」とついているものを選択すると下記のフレームワークが初期でインストールされたりとあるので用途に合わせて選択しましょう。
 - Apache Spark / Horovod Integration
 - XGBoost support
 - TensorFlow, PyTorch and Keras support

- **Enable autoscaling**
クラスタのサイズを自動で変更させたい場合はチェックを入れます。
際限なくスケールする なんてことはなくきちんと上限を設定できますのでご安心を。

- **Terminate after [nn] minutes of inactivity**
個人的に Databricks の好きな機能の一つです。
設定した時間内でノートブックの操作がない場合、自動的にクラスタを停止してくれます。
うっかりを防いでくれるので、費用を抑えることができます。
重い処理を実行していつ終わるのか…と監視する必要もないですね。
再開する際は起動まで少し時間が必要ですが、ノートブック内の記述は残っているので途中から再開可能です。

- **Worker Type**
ノートブックが稼働する VM の選択をします。性能や費用に関わってくるので要件に応じて選択しましょう。
Min Workers , Max Workers ではオートスケールの最小・最大ワーカー数を指定できます。

- **Driver Type**
コマンドの解釈やクエリの最適化、作業の分散等を担います。
大量データを収集する場合はメモリを増やすといいでしょう。
デフォルトでは Worker Type で選択した VM と同じになります。

![2020-09-02_13h04_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/f0faa408-a849-f900-f6e6-a6f1e9c7cf59.png)

### オプション設定
環境変数等追加の設定を行うことも可能です。

- Spark Config
Spark プロパティ設定を行うことが可能です。
[Spark configuration properties](https://spark.apache.org/docs/latest/configuration.html)

- Environment variables
環境変数の設定を行います。

- Tags
リソース管理のタグ付けを行います。
Azure Databricks では VM やディスクボリュームに適用されます。

- Logging
Driver や Worker のイベントログの吐き出し先とするパスを指定します。

- Init scripts
各クラスタノードの起動時に実行されるシェルスクリプトを設定できます。
Databricks Runtime に含まれていないパッケージとライブラリをインストールするのに使用しましょう。

![2020-09-02_18h59_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/949f3dc0-85a9-665f-f776-4f2e1910d7f5.png)

## クラスタ作成
設定が完了したら、画面上部の「 Create Cluster 」を押下しクラスタを作成します。

![2020-09-02_19h46_37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/66a147f0-ac89-8823-8324-fb0124b09ab7.png)

### 作成中
ボタンを押下すると最初のクラスタ一覧画面に戻ります。
ステータスが Pending となっておりクラスタが作成中なのが確認できます。

![2020-09-02_19h47_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/19af110b-5254-e2ad-e9dc-122ab765c030.png)

暫く待ち、ステータスが running となればクラスタ作成完了です。
（今回記事用で作成した F4s の VM ノード数2では5分足らずで作成完了しました。）

### 作成完了
![2020-09-02_19h50_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/e6280277-c6df-0dbb-e969-e98a16053c7c.png)

## 作成したクラスタの確認
クラスタ一覧からクラスタ名を選択するとそのクラスタの設定を確認することができます。
「 Edit 」を選択することでオートスケール設定や VM のサイズを変えることも可能です。
Cluster Mode だけは変更できないので注意してください。

![2020-09-02_19h59_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322096/8b9e9031-3f0e-83d6-ff07-17bde24586da.png)

## まとめ
Azure Databricks でのクラスタ作成方法をご紹介しました。
VM のサイズなど使ってみないとわからないこともあるかと思いますが、後から変更できるのでまずは作成して試してみてもらえればと思います。

## 参考サイト
[Configure clusters — Databricks Documentation](https://docs.databricks.com/clusters/configure.html)