クラスターの構成 Configure clusters

この記事では、Azure Databricks クラスターを作成および編集するときに使用できる構成オプションについて説明します。This article explains the configuration options available when you create and edit Azure Databricks clusters. この記事では、UI を使用したクラスターの作成と編集に焦点を当てています。It focuses on creating and editing clusters using the UI. その他の方法については、「クラスター CLI」および「クラスター API」を参照してください。For other methods, see Clusters CLI and Clusters API.

クラスターの作成Create cluster

クラスター ポリシーCluster policy

クラスターポリシーは、一連のルールに基づいてクラスターを構成する機能を制限します。A cluster policy limits the ability to configure clusters based on a set of rules. ポリシールールでは、クラスターの作成に使用できる属性値または属性値を制限します。The policy rules limit the attributes or attribute values available for cluster creation. クラスターポリシーには、特定のユーザーおよびグループに使用を制限する Acl があるため、クラスターを作成するときに選択できるポリシーが制限されます。Cluster policies have ACLs that limit their use to specific users and groups and thus limit which policies you can select when you create a cluster.

クラスターポリシーを構成するには、[ ポリシー ] ドロップダウンでクラスターポリシーを選択します。To configure a cluster policy, select the cluster policy in the Policy drop-down.

クラスターポリシーの選択Select cluster policy

注意

ワークスペースにポリシーが作成されていない場合、ポリシー のドロップダウンは表示されません。If no policies have been created in the workspace, the Policy drop-down does not display.

次の場合:If you have:

  • クラスター作成アクセス許可無制限 ポリシーを選択し、完全に構成可能なクラスターを作成できます。Cluster create permission, you can select the Unrestricted policy and create fully-configurable clusters. 無制限 ポリシーでは、クラスターの属性または属性値は制限されません。The Unrestricted policy does not limit any cluster attributes or attribute values.
  • クラスターの作成アクセス許可とクラスターポリシーへのアクセスの両方で、 無制限 のポリシーとアクセス権を持つポリシーを選択できます。Both cluster create permission and access to cluster policies, you can select the Unrestricted policy and the policies you have access to.
  • クラスターポリシーにのみアクセスできます。アクセス権のあるポリシーを選択できます。Access to cluster policies only, you can select the policies you have access to.

クラスター モードCluster mode

Azure Databricks は、Standard、High Concurrency、および Single Nodeの3つのクラスターモードをサポートしています。Azure Databricks supports three cluster modes: Standard, High Concurrency, and Single Node. 既定のクラスターモードは Standard です。The default cluster mode is Standard.

注意

クラスター構成には、既定値 がクラスターモードに依存する 自動終了設定が含まれています。The cluster configuration includes an auto terminate setting whose default value depends on cluster mode:

  • Standard および Single Node クラスターは、120分後に自動的に終了するように構成されています。Standard and Single Node clusters are configured to terminate automatically after 120 minutes.
  • 高い同時実行クラスターは自動的に 終了しない ように構成されています。High Concurrency clusters are configured to not terminate automatically.

重要

クラスターの作成後にクラスターモードを変更することはできません。You cannot change the cluster mode after a cluster is created. 別のクラスターモードが必要な場合は、新しいクラスターを作成する必要があります。If you want a different cluster mode, you must create a new cluster.

Standard クラスター Standard clusters

1人のユーザーには標準クラスターを使用することをお勧めします。Standard clusters are recommended for a single user. Standard クラスターは、任意の言語 (Python、R、スケール a、SQL) で開発されたワークロードを実行できます。Standard clusters can run workloads developed in any language: Python, R, Scala, and SQL.

高同時実行クラスター High Concurrency clusters

高い同時実行クラスターは、管理されたクラウドリソースです。A High Concurrency cluster is a managed cloud resource. 同時実行性の高いクラスターの主な利点は、リソース使用率の最大値と最小クエリ待機時間に対して Apache Spark ネイティブの詳細な共有機能を提供することです。The key benefits of High Concurrency clusters are that they provide Apache Spark-native fine-grained sharing for maximum resource utilization and minimum query latencies.

高同時実行クラスターは、SQL、Python、R に対してのみ機能します。高い同時実行クラスターのパフォーマンスとセキュリティは、ユーザーコードを別のプロセスで実行することによって提供されます。これは、スケール a では不可能です。High Concurrency clusters work only for SQL, Python, and R. The performance and security of High Concurrency clusters is provided by running user code in separate processes, which is not possible in Scala.

また、 テーブルアクセス制御をサポートしているのは、高同時実行クラスターだけです。In addition, only High Concurrency clusters support table access control.

高い同時実行クラスターを作成するには、[クラスターモード] ドロップダウンで [ 高同時実行] を選択します。To create a High Concurrency cluster, in the Cluster Mode drop-down select High Concurrency.

高同時実行クラスターモードHigh concurrency cluster mode

クラスター API を使用して高同時実行クラスターを作成する方法の例については、「 高い同時実行クラスターの例」を参照してください。For an example of how to create a High Concurrency cluster using the Clusters API, see High Concurrency cluster example.

単一ノードクラスター Single Node clusters

1つのノードクラスターにワーカーがなく、[ドライバー] ノードで Spark ジョブを実行します。A Single Node cluster has no workers and runs Spark jobs on the driver node. これに対し、標準モードのクラスターでは、Spark ジョブを実行するために、ドライバーノードに加えて、少なくとも 1 つ の spark ワーカーノードが必要です。In contrast, Standard mode clusters require at least one Spark worker node in addition to the driver node to execute Spark jobs.

単一ノードクラスターを作成するには、[クラスターモード] ドロップダウンリストから [ 単一ノード] を選択します。To create a Single Node cluster, in the Cluster Mode drop-down select Single Node.

シングルノードクラスターモードSingle node cluster mode

単一ノードクラスターでの作業の詳細については、「 単一ノードクラスター」を参照してください。To learn more about working with Single Node clusters, see Single Node clusters.

プールPool

重要

この機能はパブリック プレビュー段階にあります。This feature is in Public Preview.

クラスターの開始時間を短縮するには、クラスターを、事前に定義されたアイドル状態のインスタンスの プール に接続します。To reduce cluster start time, you can attach a cluster to a predefined pool of idle instances. プールに接続されている場合、クラスターはそのドライバーとワーカーノードをプールから割り当てます。When attached to a pool, a cluster allocates its driver and worker nodes from the pool. プールにクラスターの要求に対応するのに十分なアイドルリソースがない場合は、インスタンスプロバイダーから新しいインスタンスを割り当てることによって、プールが拡張されます。If the pool does not have sufficient idle resources to accommodate the cluster’s request, the pool expands by allocating new instances from the instance provider. アタッチされたクラスターが終了すると、使用されたインスタンスがプールに返され、別のクラスターで再利用できるようになります。When an attached cluster is terminated, the instances it used are returned to the pool and can be reused by a different cluster.

Azure Databricks でプールを操作する方法の詳細について は、「プールを使用 する」を参照してください。See Use a pool to learn more about working with pools in Azure Databricks.

Databricks ランタイムDatabricks Runtime

Databricks ランタイムは、 クラスターで実行されるコアコンポーネントのセットです。Databricks runtimes are the set of core components that run on your clusters. すべての Databricks ランタイムには Apache Spark と、使いやすさ、パフォーマンス、およびセキュリティを向上させるコンポーネントと更新プログラムが含まれています。All Databricks runtimes include Apache Spark and add components and updates that improve usability, performance, and security.

Azure Databricks には、クラスターを作成または編集するときに、 Databricks Runtime バージョン のドロップダウンで、いくつかの種類のランタイムとそれらのランタイム型が用意されています。Azure Databricks offers several types of runtimes and several versions of those runtime types in the Databricks Runtime Version drop-down when you create or edit a cluster.

詳細については、「 Databricksruntime」を参照してください。For details, see Databricks runtimes.

Docker コンテナー Docker container

一部の Databricks Runtime バージョンでは、クラスターの作成時に Docker イメージを指定できます。For some Databricks Runtime versions, you can specify a Docker image when you create a cluster. ユースケースの例としては、ライブラリのカスタマイズ、変更されないゴールデンコンテナー環境、Docker CI/CD 統合などがあります。Example use cases include library customization, a golden container environment that doesn’t change, and Docker CI/CD integration.

また、Docker イメージを使用して、GPU デバイスを使用するクラスター上にカスタムのディープラーニング環境を作成することもできます。You can also use Docker images to create custom deep learning environments on clusters with GPU devices.

手順については、「 Databricks Container services を使用したコンテナーのカスタマイズ 」および「 Databricks CONTAINER services on GPU クラスター」を参照してください。For instructions, see Customize containers with Databricks Container Services and Databricks Container Services on GPU clusters.

Python バージョンPython version

重要

Python 2 は2020年1月1日に終了しました。Python 2 reached its end of life on January 1, 2020. Python 2 は Databricks Runtime 6.0 以降ではサポートされていません。Python 2 is not supported in Databricks Runtime 6.0 and above. Databricks Runtime 5.5 以降では、引き続き Python 2 をサポートします。Databricks Runtime 5.5 and below continue to support Python 2.

Databricks Runtime 6.0 以降を実行している Python クラスターPython clusters running Databricks Runtime 6.0 and above

Databricks Runtime 6.0 (サポートされていません) 以降では、Python 3 のみがサポートされます。Databricks Runtime 6.0 (Unsupported) and above supports only Python 3. Databricks Runtime 6.0 で導入された Python 環境に関連する主な変更点については、リリースノートの「 python 環境 」を参照してください。For major changes related to the Python environment introduced by Databricks Runtime 6.0, see Python environment in the release notes.

Databricks Runtime 5.5 LTS を実行する Python クラスターPython clusters running Databricks Runtime 5.5 LTS

Databricks Runtime 5.5 LTS の場合、Spark ジョブ、Python notebook セル、およびライブラリのインストールでは、Python 2 と3の両方がサポートされます。For Databricks Runtime 5.5 LTS, Spark jobs, Python notebook cells, and library installation all support both Python 2 and 3.

UI を使用して作成されたクラスターの既定の Python バージョンは Python 3 です。The default Python version for clusters created using the UI is Python 3. Databricks Runtime 5.5 LTS では、REST API を使用して作成されたクラスターの既定のバージョンは Python 2 です。In Databricks Runtime 5.5 LTS the default version for clusters created using the REST API is Python 2.

Python のバージョンを指定するSpecify Python version

UI を使用してクラスターを作成するときに Python のバージョンを指定するには、[ Python バージョン ] ドロップダウンから選択します。To specify the Python version when you create a cluster using the UI, select it from the Python Version drop-down.

クラスター Python バージョンCluster Python version

API を使用してクラスターを作成するときに Python のバージョンを指定するには、環境変数 PYSPARK_PYTHON をまたはに設定し /databricks/python/bin/python /databricks/python3/bin/python3 ます。To specify the Python version when you create a cluster using the API, set the environment variable PYSPARK_PYTHON to /databricks/python/bin/python or /databricks/python3/bin/python3. 例については、REST API の例を参照してください。 ビッグファイルを DBFS にアップロードします。For an example, see the REST API example Upload a big file into DBFS.

構成が有効になったことを検証するには PYSPARK_PYTHON 、Python ノートブック (またはセル) で次のように %python 実行します。To validate that the PYSPARK_PYTHON configuration took effect, in a Python notebook (or %python cell) run:

import sys
print(sys.version)

を指定した場合 /databricks/python3/bin/python3 、次のような出力が表示されます。If you specified /databricks/python3/bin/python3, it should print something like:

3.5.2 (default, Sep 10 2016, 08:21:44)
[GCC 5.4.0 20160609]

重要

Databricks Runtime 5.5 LTS の場合、 %sh python --version notebook でを実行すると、は、 python python 2 の Ubuntu システム python バージョンを参照します。For Databricks Runtime 5.5 LTS, when you run %sh python --version in a notebook, python refers to the Ubuntu system Python version, which is Python 2. /databricks/python/bin/pythonDatabricks notebook および Spark で使用される python のバージョンを参照するために使用します。このパスは、正しい python 実行可能ファイルを指すように自動的に構成されます。Use /databricks/python/bin/python to refer to the version of Python used by Databricks notebooks and Spark: this path is automatically configured to point to the correct Python executable.

よく寄せられる質問 (FAQ)Frequently asked questions (FAQ)

Python 2 と Python 3 の両方の notebook を同じクラスターで使用できますか。Can I use both Python 2 and Python 3 notebooks on the same cluster?

いいえ。No. Python のバージョンはクラスター全体の設定であり、ノートブックごとに構成することはできません。The Python version is a cluster-wide setting and is not configurable on a per-notebook basis.

Python クラスターにはどのようなライブラリがインストールされていますか?What libraries are installed on Python clusters?

インストールされている特定のライブラリの詳細については、「 Databricks runtime release note」を参照してください。For details on the specific libraries that are installed, see the Databricks runtime release notes.

既存の PyPI ライブラリは Python 3 で動作しますか。Will my existing PyPI libraries work with Python 3?

ライブラリのバージョンが Databricks Runtime バージョンの Python 3 バージョンをサポートしているかどうかによって異なります。It depends on whether the version of the library supports the Python 3 version of a Databricks Runtime version.

Databricks Runtime 5.5 LTS は Python 3.5 を使用します。Databricks Runtime 5.5 LTS uses Python 3.5. Databricks Runtime 6.0 以降で、Conda で Databricks Runtime するには、Python 3.7 を使用します。Databricks Runtime 6.0 and above and Databricks Runtime with Conda use Python 3.7. Python ライブラリの特定の古いバージョンに Python 3.7 との上位互換性がない可能性があります。It is possible that a specific old version of a Python library is not forward compatible with Python 3.7. この場合は、新しいバージョンのライブラリを使用する必要があります。For this case, you will need to use a newer version of the library.

既存 .egg のライブラリは Python 3 で動作しますか。Will my existing .egg libraries work with Python 3?

これは、既存の卵ライブラリが Python 2 と3の両方と相互に互換性があるかどうかによって異なります。It depends on whether your existing egg library is cross-compatible with both Python 2 and 3. ライブラリが Python 3 をサポートしていない場合、ライブラリの添付ファイルは失敗するか、実行時エラーが発生します。If the library does not support Python 3 then either library attachment will fail or runtime errors will occur.

Python 3 へのコードの移植と、Python 2 と Python 3 との互換性があるコードの記述に関する包括的なガイドについては、「 python 3 のサポート」を参照してください。For a comprehensive guide on porting code to Python 3 and writing code compatible with both Python 2 and 3, see Supporting Python 3.

Init スクリプトを使用して Python ライブラリをインストールすることはできますか。Can I still install Python libraries using init scripts?

クラスターノード初期化スクリプトの一般的な使用例は、パッケージをインストールすることです。A common use case for Cluster node initialization scripts is to install packages.

Databricks Runtime 5.5 LTS の場合は、を使用し /databricks/python/bin/pip て、python パッケージがシステム python 環境ではなく Databricks python 仮想環境にインストールされるようにします。For Databricks Runtime 5.5 LTS, use /databricks/python/bin/pip to ensure that Python packages install into Databricks Python virtual environment rather than the system Python environment.

Databricks Runtime 6.0 以降で、Conda で Databricks Runtime する場合、 pip コマンドは pip 正しい Python 仮想環境でを参照します。For Databricks Runtime 6.0 and above, and Databricks Runtime with Conda, the pip command is referring to the pip in the correct Python virtual environment. ただし、init スクリプトを使用して Python 仮想環境を作成する場合は、とにアクセスするために常に絶対パスを使用し python pip ます。However, if you are using an init script to create the Python virtual environment, always use the absolute path to access python and pip.

クラスターノードの種類 Cluster node type

クラスターは、1つのドライバーノードとワーカーノードで構成されます。A cluster consists of one driver node and worker nodes.

ドライバーとワーカーノードには、個別のクラウドプロバイダーインスタンスの種類を選択できます。ただし、既定では、ドライバーノードはワーカーノードと同じインスタンスの種類を使用します。You can pick separate cloud provider instance types for the driver and worker nodes, although by default the driver node uses the same instance type as the worker node. インスタンスの種類のファミリは、メモリを集中的に使用するワークロードやコンピューティング集中型のワークロードなど、さまざまなユースケースに適しています。Different families of instance types fit different use cases, such as memory-intensive or compute-intensive workloads.

注意

セキュリティ要件に コンピューティング分離が含まれている場合は、ワーカーの種類として Standard_F72s_V2 インスタンスを選択します。If your security requirements include compute isolation, select a Standard_F72s_V2 instance as your worker type. これらのインスタンスの種類は、物理ホスト全体を使用し、米国国防総省の影響レベル 5 (IL5) のワークロードなどをサポートするために必要な分離レベルを提供する分離された仮想マシンを表します。These instance types represent isolated virtual machines that consume the entire physical host and provide the necessary level of isolation required to support, for example, US Department of Defense Impact Level 5 (IL5) workloads.

ドライバーノードDriver node

ドライバーは、クラスターに接続されているすべてのノートブックの状態情報を保持します。The driver maintains state information of all notebooks attached to the cluster. また、ドライバーノードは、SparkContext を維持し、notebook またはクラスター上のライブラリから実行するすべてのコマンドを解釈する役割も担います。The driver node is also responsible for maintaining the SparkContext and interpreting all the commands you run from a notebook or a library on the cluster. また、ドライバーノードでは、Spark 実行プログラムによって調整される Apache Spark マスターも実行されます。The driver node also runs the Apache Spark master that coordinates with the Spark executors.

ドライバーノードタイプの既定値は、ワーカーノードタイプと同じです。The default value of the driver node type is the same as the worker node type. Spark worker から大量のデータを使用する予定がある場合は、より大きな種類のドライバーノードを選択して、ノートブックで分析することができ collect() ます。You can choose a larger driver node type with more memory if you are planning to collect() a lot of data from Spark workers and analyze them in the notebook.

ヒント

ドライバーノードは、添付されているノートブックのすべての状態情報を保持するため、未使用のノートブックをドライバーからデタッチしてください。Since the driver node maintains all of the state information of the notebooks attached, make sure to detach unused notebooks from the driver.

ワーカー ノードWorker node

Azure Databricks worker は、クラスターが正しく機能するために必要な Spark 実行プログラムとその他のサービスを実行します。Azure Databricks workers run the Spark executors and other services required for the proper functioning of the clusters. Spark を使用してワークロードを分散すると、すべての分散処理がワーカー上で行われます。When you distribute your workload with Spark, all of the distributed processing happens on workers. Azure Databricks は、ワーカーノードごとに1つの実行プログラムを実行します。そのため、実行 プログラムワーカー は Azure Databricks アーキテクチャのコンテキストでは同じ意味で使用されます。Azure Databricks runs one executor per worker node; therefore the terms executor and worker are used interchangeably in the context of the Azure Databricks architecture.

ヒント

Spark ジョブを実行するには、少なくとも 1 つのワーカーが必要です。To run a Spark job, you need at least one worker. クラスターのワーカーが 0 の場合は、Spark 以外のコマンドをドライバーで実行できますが、Spark コマンドは失敗します。If a cluster has zero workers, you can run non-Spark commands on the driver, but Spark commands will fail.

GPU インスタンスの種類 GPU instance types

ディープラーニングに関連するものと同様に、高パフォーマンスを必要とする計算上の困難なタスクについては、Azure Databricks はグラフィックス処理装置 (Gpu) を使用したクラスターの高速化をサポートしています。For computationally challenging tasks that demand high performance, like those associated with deep learning, Azure Databricks supports clusters accelerated with graphics processing units (GPUs). このサポートはベータ版です。This support is in Beta. 詳細については、「 GPU 対応クラスター」を参照してください。For more information, see GPU-enabled clusters.

スポットインスタンスSpot instances

重要

この機能はパブリック プレビュー段階にあります。This feature is in Public Preview.

コストを節約するには、[スポットインスタンス] チェックボックスをオンにして スポットインスタンスを使用することを選択できます。To save cost, you can choose to use spot instances by checking the Spot instances checkbox.

スポットの構成Configure spot

最初のインスタンスは常にオンデマンドで (ドライバーは常にオンデマンド)、後続のインスタンスはスポットになります。The first instance will always be on-demand (the driver is always on-demand) and subsequent instances will be spot. 利用できないためにスポットインスタンスが削除された場合、オンデマンドインスタンスは、削除されたインスタンスを置き換えるためにデプロイされます。If spot instances are evicted due to unavailability, on-demand instances are deployed to replace evicted instances.

クラスターのサイズと自動スケールCluster size and autoscaling

Azure Databricks クラスターを作成するときに、クラスターのワーカーの数を固定するか、クラスターのワーカーの最小数と最大数を指定することができます。When you create a Azure Databricks cluster, you can either provide a fixed number of workers for the cluster or provide a minimum and maximum number of workers for the cluster.

固定サイズのクラスターを提供すると、Azure Databricks によって、クラスターに指定された数のワーカーが確実に与えられます。When you provide a fixed size cluster, Azure Databricks ensures that your cluster has the specified number of workers. ワーカーの数の範囲を指定すると、Databricks はジョブを実行するために必要なワーカーの数を選択します。When you provide a range for the number of workers, Databricks chooses the appropriate number of workers required to run your job. これを自動 スケール と呼びます。This is referred to as autoscaling.

自動スケールでは、Azure Databricks ジョブの特性を考慮してワーカーを動的に再割り当てします。With autoscaling, Azure Databricks dynamically reallocates workers to account for the characteristics of your job. パイプラインの特定の部分では、他の処理よりも多くの計算が必要になる場合があります。また、Databricks は、ジョブのこれらのフェーズ中にワーカーを自動的に追加します (不要になった場合は削除されます)。Certain parts of your pipeline may be more computationally demanding than others, and Databricks automatically adds additional workers during these phases of your job (and removes them when they’re no longer needed).

ワークロードに一致するようにクラスターをプロビジョニングする必要がないため、自動スケールを使用すると、クラスターの使用率を高めることができます。Autoscaling makes it easier to achieve high cluster utilization, because you don’t need to provision the cluster to match a workload. これは、時間の経過と共に要件が変化するワークロードに特に当てはまります (たとえば、データセットを1日に調査する場合など) が、プロビジョニング要件が不明な1回限りの短いワークロードにも適用できます。This applies especially to workloads whose requirements change over time (like exploring a dataset during the course of a day), but it can also apply to a one-time shorter workload whose provisioning requirements are unknown. 自動スケールでは、次の2つの利点があります。Autoscaling thus offers two advantages:

  • ワークロードは、プロビジョニングされた一定の量のクラスターに比べて、より高速に実行できます。Workloads can run faster compared to a constant-sized under-provisioned cluster.
  • 自動スケールクラスターを使用すると、静的なサイズのクラスターと比較して全体的なコストを削減できます。Autoscaling clusters can reduce overall costs compared to a statically-sized cluster.

クラスターとワークロードの定数サイズによっては、自動スケールによってこれらの利点の一方または両方が同時に提供されます。Depending on the constant size of the cluster and the workload, autoscaling gives you one or both of these benefits at the same time. クラスターサイズは、クラウドプロバイダーがインスタンスを終了するときに選択されるワーカーの最小数を下回ることができます。The cluster size can go below the minimum number of workers selected when the cloud provider terminates instances. この場合、Azure Databricks は、ワーカーの最小数を維持するために、インスタンスの再プロビジョニングを継続的に再試行します。In this case, Azure Databricks continuously retries to re-provision instances in order to maintain the minimum number of workers.

注意

ジョブでは自動スケールを使用できません spark-submitAutoscaling is not available for spark-submit jobs.

自動スケーリングの種類Autoscaling types

Azure Databricks には、2種類のクラスターノードの自動スケール (standard と最適化) が用意されています。Azure Databricks offers two types of cluster node autoscaling: standard and optimized. 最適化された自動スケールの利点の詳細については、 最適化された自動スケールに関するブログの投稿を参照してください。For a discussion of the benefits of optimized autoscaling, see the blog post on Optimized Autoscaling.

自動 (ジョブ) クラスターでは、常に最適化された自動スケールが使用されます。Automated (job) clusters always use optimized autoscaling. すべての目的のクラスターで実行される自動スケールの種類は、ワークスペースの構成によって異なります。The type of autoscaling performed on all-purpose clusters depends on the workspace configuration.

標準の自動スケールは、Standard 価格レベルのワークスペースのすべての目的のクラスターで使用されます。Standard autoscaling is used by all-purpose clusters in workspaces in the Standard pricing tier. 最適化された自動スケールは、 Azure Databricks Premium プランのすべての目的のクラスターで使用されます。Optimized autoscaling is used by all-purpose clusters in the Azure Databricks Premium Plan.

自動スケーリングの動作How autoscaling behaves

自動スケールの動作は、最適化されているか標準であるか、また、すべての目的に適用されるか、またはジョブクラスターに適用されるかによって異なります。Autoscaling behaves differently depending on whether it is optimized or standard and whether applied to an all-purpose or a job cluster.

最適化された自動スケーリングOptimized autoscaling

  • 2段階で最小から最大にスケールアップします。Scales up from min to max in 2 steps.
  • クラスターがアイドル状態でない場合でも、シャッフルファイルの状態を調べることで、スケールダウンできます。Can scale down even if the cluster is not idle by looking at shuffle file state.
  • 現在のノードの割合に基づいてスケールダウンします。Scales down based on a percentage of current nodes.
  • ジョブクラスターでは、クラスターが過去40秒間に過小使用されている場合は、スケールダウンします。On job clusters, scales down if the cluster is underutilized over the last 40 seconds.
  • すべての目的のクラスターで、クラスターが過去150秒間に過小使用されている場合は、スケールダウンします。On all-purpose clusters, scales down if the cluster is underutilized over the last 150 seconds.
  • spark.databricks.aggressiveWindowDownSSpark 構成プロパティでは、クラスターがダウンスケーリングの決定を行う頻度を秒単位で指定します。The spark.databricks.aggressiveWindowDownS Spark configuration property specifies in seconds how often a cluster makes down-scaling decisions. 値を大きくすると、クラスターのスケールダウンが遅くなります。Increasing the value causes a cluster to scale down more slowly. 最大値は600です。The maximum value is 600.

標準の自動スケールStandard autoscaling

  • 8個のノードの追加で開始します。Starts with adding 8 nodes. その後は、指数関数的にスケールアップされますが、最大になるまでに多くの手順が必要になる場合があります。最初の手順をカスタマイズするには、 spark.databricks.autoscaling.standardFirstStepUp Spark 構成プロパティを設定します。Thereafter, scales up exponentially, but can take many steps to reach the max. You can customize the first step by setting the spark.databricks.autoscaling.standardFirstStepUp Spark configuration property.
  • クラスターが完全にアイドル状態で、過去10分間に使用率が過小使用された場合にのみスケールダウンします。Scales down only when the cluster is completely idle and it has been underutilized for the last 10 minutes.
  • 1ノードから始めて指数関数的にスケールダウンします。Scales down exponentially, starting with 1 node.

自動スケーリングを有効にして構成するEnable and configure autoscaling

Azure Databricks がクラスターのサイズを自動的に変更できるようにするには、クラスターの自動スケールを有効にし、ワーカーの最小範囲と最大範囲を指定します。To allow Azure Databricks to resize your cluster automatically, you enable autoscaling for the cluster and provide the min and max range of workers.

  1. 自動スケールを有効にします。Enable autoscaling.

    • All-Purpose クラスター-[クラスターの作成] ページで、[自動操縦オプション] ボックスの [自動 スケールを有効にする] チェックボックスをオンにします。All-Purpose cluster - On the Create Cluster page, select the Enable autoscaling checkbox in the Autopilot Options box:

      対話型クラスターの自動スケールを有効にするEnable autoscaling for interactive clusters

    • ジョブクラスター-[クラスターの構成] ページで、[自動操縦オプション] ボックスの [自動 スケールを有効にする] チェックボックスをオンにします。Job cluster - On the Configure Cluster page, select the Enable autoscaling checkbox in the Autopilot Options box:

      ジョブクラスターの自動スケールを有効にするEnable autoscaling for job clusters

  2. ワーカーの最小数と最大数を構成します。Configure the min and max workers.

    ワーカーの最小数と最大数の構成Configure min and max workers

    クラスターが実行されている場合は、[クラスターの詳細] ページに割り当てられたワーカーの数が表示されます。When the cluster is running, the cluster detail page displays the number of allocated workers. 割り当てられたワーカーの数をワーカーの構成と比較し、必要に応じて調整することができます。You can compare number of allocated workers with the worker configuration and make adjustments as needed.

重要

インスタンスプールを使用している場合は、次のようにします。If you are using an instance pool:

  • 要求されたクラスターサイズが、プール内の アイドル状態のインスタンスの最小数 以下であることを確認してください。Make sure the cluster size requested is less than or equal to the minimum number of idle instances in the pool. サイズが大きい場合、クラスターの起動時間はプールを使用しないクラスターと同じになります。If it is larger, cluster startup time will be equivalent to a cluster that doesn’t use a pool.
  • 最大クラスターサイズがプールの 最大容量 以下であることを確認してください。Make sure the maximum cluster size is less than or equal to the maximum capacity of the pool. サイズが大きい場合、クラスターの作成は失敗します。If it is larger, the cluster creation will fail.

自動スケールの例Autoscaling example

静的クラスターを自動スケールクラスターに再構成すると、Azure Databricks によって、最小と最大の境界内でクラスターのサイズが直ちに変更され、自動スケールが開始されます。If you reconfigure a static cluster to be an autoscaling cluster, Azure Databricks immediately resizes the cluster within the minimum and maximum bounds and then starts autoscaling. 例として、次の表は、クラスターを再構成して5ノードと10ノードの間で自動スケールする場合に、特定の初期サイズを持つクラスターの動作を示しています。As an example, the following table demonstrates what happens to clusters with a certain initial size if you reconfigure a cluster to autoscale between 5 and 10 nodes.

初期サイズInitial size 再構成後のサイズSize after reconfiguration
66 66
1212 1010
33 55

ローカルストレージの自動スケール Autoscaling local storage

多くの場合、特定のジョブで実行されるディスク領域を見積もることは困難です。It can often be difficult to estimate how much disk space a particular job will take. 作成時にクラスターにアタッチする管理ディスクのギガバイト数を推定する必要がないように、Azure Databricks によって、すべての Azure Databricks クラスターで自動スケールのローカルストレージが自動的に有効になります。To save you from having to estimate how many gigabytes of managed disk to attach to your cluster at creation time, Azure Databricks automatically enables autoscaling local storage on all Azure Databricks clusters.

自動スケールローカル記憶域を使用すると、Azure Databricks はクラスターの Spark worker で使用可能な空きディスク領域の容量を監視します。With autoscaling local storage, Azure Databricks monitors the amount of free disk space available on your cluster’s Spark workers. ワーカーがディスク上で低すぎると、Databricks は新しい管理ディスクをワーカーに自動的にアタッチしてから、ディスク領域が不足します。If a worker begins to run too low on disk, Databricks automatically attaches a new managed disk to the worker before it runs out of disk space. ディスクは、仮想マシン (仮想マシンの初期のローカル記憶域を含む) ごとに、合計ディスク領域の 5 TB に制限されます。Disks are attached up to a limit of 5 TB of total disk space per virtual machine (including the virtual machine’s initial local storage).

仮想マシンに接続されている管理ディスクは、仮想マシンが Azure に返されたときにのみデタッチされます。The managed disks attached to a virtual machine are detached only when the virtual machine is returned to Azure. つまり、管理ディスクは、実行中のクラスターの一部である限り、仮想マシンから切断されることはありません。That is, managed disks are never detached from a virtual machine as long as it is part of a running cluster. 管理ディスクの使用量をスケールダウンするには、 GPU インスタンスの種類 または 自動終了を使用して構成されたクラスターで、この機能を使用することをお勧めします。 Azure DatabricksTo scale down managed disk usage, Azure Databricks recommends using this feature in a cluster configured with GPU instance types or Automatic termination.

ローカルディスクの暗号化 Local disk encryption

重要

この機能はパブリック プレビュー段階にあります。This feature is in Public Preview.

クラスターの実行に使用するインスタンスの種類によっては、ローカルにディスクが接続されている場合があります。Some instance types you use to run clusters may have locally attached disks. Azure Databricks は、これらのローカル接続ディスクにシャッフルデータまたは一時データを格納できます。Azure Databricks may store shuffle data or ephemeral data on these locally attached disks. クラスターのローカルディスクに一時的に格納されているデータのシャッフルなど、すべてのストレージの種類で保存データの暗号化を確実に行うには、ローカルディスクの暗号化を有効にします。To ensure that all data at rest is encrypted for all storage types, including shuffle data that is stored temporarily on your cluster’s local disks, you can enable local disk encryption.

重要

ローカルボリュームとの間での暗号化データの読み取りと書き込みのパフォーマンスに影響があるため、ワークロードの実行速度が低下する可能性があります。Your workloads may run more slowly because of the performance impact of reading and writing encrypted data to and from local volumes.

ローカルディスクの暗号化を有効にすると、Azure Databricks は各クラスターノードに固有の暗号化キーをローカルに生成し、ローカルディスクに格納されているすべてのデータを暗号化するために使用されます。When local disk encryption is enabled, Azure Databricks generates an encryption key locally that is unique to each cluster node and is used to encrypt all data stored on local disks. キーのスコープは各クラスターノードに対してローカルであり、クラスターノード自体と共に破棄されます。The scope of the key is local to each cluster node and is destroyed along with the cluster node itself. 有効期間中、キーは暗号化と復号化のためにメモリに存在し、暗号化されてディスクに格納されます。During its lifetime, the key resides in memory for encryption and decryption and is stored encrypted on the disk.

ローカルディスクの暗号化を有効にするには、 クラスター APIを使用する必要があります。To enable local disk encryption, you must use the Clusters API. クラスターの作成時または編集時に、次のように設定します。During cluster creation or edit, set:

{
  "enable_local_disk_encryption": true
}

これらの Api を呼び出す方法の例については、「クラスター API リファレンス」の「 作成編集 」を参照してください。See Create and Edit in the Clusters API reference for examples of how to invoke these APIs.

ローカルディスクの暗号化を有効にするクラスター作成呼び出しの例を次に示します。Here is an example of a cluster create call that enables local disk encryption:

{
  "cluster_name": "my-cluster",
  "spark_version": "7.3.x-scala2.12",
  "node_type_id": "Standard_D3_v2",
  "enable_local_disk_encryption": true,
  "spark_conf": {
    "spark.speculation": true
  },
  "num_workers": 25
}

Spark の構成Spark configuration

Spark ジョブを微調整するには、クラスター構成でカスタム Spark 構成プロパティ を指定します。To fine tune Spark jobs, you can provide custom Spark configuration properties in a cluster configuration.

  1. [クラスター構成] ページで、[ 詳細オプション ] の切り替えをクリックします。On the cluster configuration page, click the Advanced Options toggle.

  2. [ Spark ] タブをクリックします。Click the Spark tab.

    Spark の構成Spark configuration

    Spark config で、構成プロパティを1行に1つのキー/値ペアとして入力します。In Spark config, enter the configuration properties as one key-value pair per line.

クラスター APIを使用してクラスターを構成する場合は、クラスターの spark_conf 作成要求 または クラスターの編集要求のフィールドで Spark プロパティを設定します。When you configure a cluster using the Clusters API, set Spark properties in the spark_conf field in the Create cluster request or Edit cluster request.

すべてのクラスターの Spark プロパティを設定するには、 グローバルな init スクリプトを作成します。To set Spark properties for all clusters, create a global init script:

dbutils.fs.put("dbfs:/databricks/init/set_spark_params.sh","""
  |#!/bin/bash
  |
  |cat << 'EOF' > /databricks/driver/conf/00-custom-spark-driver-defaults.conf
  |[driver] {
  |  "spark.sql.sources.partitionOverwriteMode" = "DYNAMIC"
  |}
  |EOF
  """.stripMargin, true)

環境変数Environment variables

クラスターで実行されているスクリプトからアクセスできる環境変数を設定できます。You can set environment variables that you can access from scripts running on a cluster.

  1. [クラスター構成] ページで、[ 詳細オプション ] の切り替えをクリックします。On the cluster configuration page, click the Advanced Options toggle.

  2. [ Spark ] タブをクリックします。Click the Spark tab.

  3. [ 環境変数 ] フィールドで環境変数を設定します。Set the environment variables in the Environment Variables field.

    環境変数フィールドEnvironment Variables field

また spark_env_vars 、[ クラスターの作成要求 ] または [ クラスター要求 クラスターの編集] API エンドポイントのフィールドを使用して、環境変数を設定することもできます。You can also set environment variables using the spark_env_vars field in the Create cluster request or Edit cluster request Clusters API endpoints.

注意

このフィールドで設定した環境変数は、 クラスターノード初期化スクリプトでは使用できません。The environment variables you set in this field are not available in Cluster node initialization scripts. Init スクリプトでサポートされるのは、定義済みの init スクリプト実行順序の限られたセットだけです。Init scripts support only a limited set of predefined Init script execution order.

クラスタータグ Cluster tags

クラスタータグを使用すると、組織内のさまざまなグループによって使用されるクラウドリソースのコストを簡単に監視できます。Cluster tags allow you to easily monitor the cost of cloud resources used by various groups in your organization. クラスターを作成するときに、キーと値のペアとしてタグを指定できます。また、これらのタグは、Vm やディスクボリュームなどのクラウドリソースおよび Dbu 使用状況レポートにも適用 Azure Databricks ます。You can specify tags as key-value pairs when you create a cluster, and Azure Databricks applies these tags to cloud resources like VMs and disk volumes, as well as DBU usage reports.

プールから起動したクラスターの場合、カスタムクラスタータグは DBU 使用状況レポートにのみ適用され、クラウドリソースには反映されません。For clusters launched from pools, the custom cluster tags are only applied to DBU usage reports and do not propagate to cloud resources. プールとクラスタータグの種類の連携方法の詳細については、「 クラスター、プール、およびワークスペースタグを使用した使用状況の監視」を参照してください。For detailed information about how pool and cluster tag types work together, see Monitor usage using cluster, pool, and workspace tags.

便宜上、Azure Databricks では、、、、およびの4つの既定のタグが各クラスターに適用さ Vendor Creator れます ClusterName ClusterIdFor convenience, Azure Databricks applies four default tags to each cluster: Vendor, Creator, ClusterName, and ClusterId.

さらに、ジョブクラスターでは、Azure Databricks はとという2つの既定のタグを適用し RunName JobId ます。In addition, on job clusters, Azure Databricks applies two default tags: RunName and JobId. SQL Analytics によって使用されるリソースについては、Azure Databricks 既定のタグも適用され SqlEndpointId ます。On resources used by SQL Analytics, Azure Databricks also applies the default tag SqlEndpointId.

クラスターを作成するときに、カスタムタグを追加できます。You can add custom tags when you create a cluster. クラスタータグを構成するには:To configure cluster tags:

  1. [クラスター構成] ページで、[ 詳細オプション ] の切り替えをクリックします。On the cluster configuration page, click the Advanced Options toggle.

  2. ページの下部にある [ タグ ] タブをクリックします。At the bottom of the page, click the Tags tab.

    [タグ] タブTags tab

  3. 各カスタムタグのキーと値のペアを追加します。Add a key-value pair for each custom tag. 最大43のカスタムタグを追加できます。You can add up to 43 custom tags.

クラスターへの SSH アクセスSSH access to clusters

SSH を使用すると、高度なトラブルシューティングやカスタムソフトウェアのインストールのために Apache Spark クラスターにリモートでログインできます。SSH allows you to log into Apache Spark clusters remotely for advanced troubleshooting and installing custom software.

関連機能については、「 Web ターミナル」を参照してください。For a related feature, see Web terminal.

セキュリティ上の理由により、Azure Databricks SSH ポートは既定で閉じられています。For security reasons, in Azure Databricks the SSH port is closed by default. Spark クラスターへの SSH アクセスを有効にする場合は、Azure Databricks サポートにお問い合わせください。If you want to enable SSH access to your Spark clusters, contact Azure Databricks support.

注意

SSH は、ワークスペースが独自の Azure 仮想化 ネットワークにデプロイされている場合にのみ有効にすることができます。SSH can be enabled only if your workspace is deployed in your own Azure virual network.

クラスター ログの配信Cluster log delivery

クラスターを作成するときに、Spark ドライバー、worker、およびイベントログを配信する場所を指定できます。When you create a cluster, you can specify a location to deliver Spark driver, worker, and event logs. ログは、選択した宛先に5分ごとに配信されます。Logs are delivered every five minutes to your chosen destination. クラスターが終了すると、Azure Databricks は、クラスターが終了するまで生成されたすべてのログを確実に配信することを保証します。When a cluster is terminated, Azure Databricks guarantees to deliver all logs generated up until the cluster was terminated.

ログの送信先は、クラスター ID によって異なります。The destination of the logs depends on the cluster ID. 指定した宛先がの場合 dbfs:/cluster-log-delivery 、のクラスターログ 0630-191345-leap375 はに配信され dbfs:/cluster-log-delivery/0630-191345-leap375 ます。If the specified destination is dbfs:/cluster-log-delivery, cluster logs for 0630-191345-leap375 are delivered to dbfs:/cluster-log-delivery/0630-191345-leap375.

ログ配信場所を構成するには、次のようにします。To configure the log delivery location:

  1. [クラスター構成] ページで、[ 詳細オプション ] の切り替えをクリックします。On the cluster configuration page, click the Advanced Options toggle.

  2. ページの下部にある [ ログ ] タブをクリックします。At the bottom of the page, click the Logging tab.

    クラスター ログの配信Cluster log delivery

  3. 変換先の種類を選択します。Select a destination type.

  4. クラスターのログパスを入力します。Enter the cluster log path.

注意

この機能は、REST API でも使用できます。This feature is also available in the REST API. クラスター APIクラスターログの配信例」を参照してください。See Clusters API and Cluster log delivery examples.

init スクリプトInit scripts

クラスターノードの初期化 (init) は、Spark ドライバーまたはワーカー JVM が起動 する前に 、各クラスターノードの起動時に実行されるシェルスクリプトです。A cluster node initialization—or init—script is a shell script that runs during startup for each cluster node before the Spark driver or worker JVM starts. Init スクリプトを使用すると、Databricks ランタイムに含まれていないパッケージとライブラリをインストールしたり、JVM システムのクラスパスを変更したり、JVM によって使用されるシステムプロパティと環境変数を設定したり、Spark 構成パラメーターを他の構成タスク間で変更したりできます。You can use init scripts to install packages and libraries not included in the Databricks runtime, modify the JVM system classpath, set system properties and environment variables used by the JVM, or modify Spark configuration parameters, among other configuration tasks.

[詳細オプション] セクションを展開し、[スクリプトの初期化] タブをクリックすると、初期化スクリプトをクラスターにアタッチできます。You can attach init scripts to a cluster by expanding the Advanced Options section and clicking the Init Scripts tab.

詳細な手順については、「 クラスターノード初期化スクリプト」を参照してください。For detailed instructions, see Cluster node initialization scripts.