コンピュートの管理

この記事では、Databricks コンピュートの表示、編集、開始、終了、削除、アクセス制御、パフォーマンスとログのモニタリングなどの管理方法について説明します。 Clusters APIを使用してコンピュートをプログラム的に管理することもできます。

コンピュートを見る

コンピュートを表示するには、クリックしてくださいコンピュートアイコンワークスペースのサイドバーでコンピュートします

左側には、コンピュートがピン留めされているかどうかとコンピュートのステータスを示す 2 つの列があります。 ステータスにカーソルを合わせると、詳細情報が表示されます。

コンピュート構成を JSON ファイルとして表示する

コンピュート構成を JSON として表示すると役立つ場合があります。 これは、 Clusters APIを使用して同様のコンピュートを作成する場合に特に便利です。 既存のコンピュートを表示する場合は、 「構成」タブに移動し、タブの右上にある「JSON 」をクリックし、JSON をコピーして API 呼び出しに貼り付けます。 JSON ビューは読み取り専用です。

コンピュートをピン留め

コンピュートは終了から 30 日後に完全に削除されます。 コンピュートが 30 日以上終了した後でも多目的コンピュート構成を維持するために、管理者はコンピュートをピン留めすることができます。 ピン留めできるコンピュートリソースは最大100個です。

管理者は、コンピュートのリストまたはコンピュートの詳細ページからピン留めアイコンをクリックしてコンピュートをピン留めできます。

コンピュートを編集する

コンピュートの詳細 UI からコンピュートの構成を編集できます。

注:

  • コンピュートにアタッチされていたノートブックとジョブは、編集後もアタッチされたままになります。

  • コンピュートにインストールされているライブラリは、編集後もインストールされたままになります。

  • 実行中のコンピュートの属性 (コンピュートのサイズと権限を除く) を編集した場合は、コンピュートを再起動する必要があります。 これにより、現在コンピュートを使用しているユーザーが中断される可能性があります。

  • 編集できるのは、実行中または終了したコンピュートのみです。 ただし、これらの状態にないコンピュートの権限は、コンピュートの詳細ページで更新できます。

コンピュートのクローンを作成する

既存のコンピュートを複製するには、コンピュートケバブメニューケバブメニュー。

[クローン]を選択すると、コンピュート構成が事前に入力されたコンピュート作成 UI が開きます。 次の属性は、クローンに含まれません。

  • コンピュート権限

  • アタッチされたノートブック

以前にインストールしたライブラリをクローンしたコンピュートに含めない場合は、 「コンピュートの作成」ボタンの横にあるドロップダウン メニューをクリックし、 「ライブラリなしで作成」を選択します。

コンピュート権限

コンピュートには、 NO PERMISSIONS 、 Can Attach To 、 Can Restart 、およびCAN MANAGEの 4 つの権限レベルがあります。 詳細については、 「コンピュート ACL」を参照してください。

注:

シークレット は、クラスターの Spark ドライバーのログ stdout および stderr ストリームから編集されません。 機密データを保護するために、デフォルトでは、Spark ドライバーのログは、ジョブ、シングルユーザーアクセスモード、および共有アクセスモードクラスターに対する CAN MANAGE 権限を持つユーザーのみが表示できます。 Can Attach To または Can Restart のアクセス許可を持つユーザーがこれらのクラスターのログを表示できるようにするには、クラスター構成で Spark 構成プロパティ (spark.databricks.acl.needAdminPermissionToViewLogs false) を設定します。

非分離共有アクセス モード クラスターでは、 Can Attach Toまたは「管理可能」権限を持つユーザーが Spark ドライバーのログを表示できます。 ログを読み取ることができるユーザーを CAN MANAGE 権限を持つユーザーのみに制限するには、 spark.databricks.acl.needAdminPermissionToViewLogstrueに設定します。

Spark プロパティをクラスター構成に追加する方法については、 「Spark 構成」を参照してください。

コンピュート権限を構成する

このセクションでは、ワークスペース UI を使用して権限を管理する方法について説明します。 Permissions APIまたはDatabricks Terraform プロバイダーを使用することもできます。

コンピュート権限を構成するには、コンピュートに対する CAN MANAGE 権限が必要です。

  1. サイドバーで、「コンピュート」をクリックします。

  2. コンピュートの行でケバブメニューをクリックしますケバブメニュー右側にある[権限の編集]を選択します。

  3. [アクセス許可の設定]で、 [ユーザー、グループ、またはサービスプリンシパルの選択]ドロップダウン メニューをクリックし、ユーザー、グループ、またはサービスプリンシパルを選択します。

  4. 権限のドロップダウンメニューから権限を選択します。

  5. 追加 」をクリックし、「 保存」をクリックします。

コンピュートを終了する

コンピュートのリソースを節約するには、コンピュートを終了します。 終了したコンピュートの設定は、後で再利用できるように保存されます (ジョブの場合は自動起動されます)。 コンピュートを手動で終了することも、指定した非アクティブ期間が経過した後に自動的に終了するようにコンピュートを構成することもできます。 終了したコンピュートの数が150を超えると、最も古いコンピュートが削除されます。

コンピュートはピン留めするか再起動しない限り、終了後 30 日後に自動的かつ完全に削除されます。

終了したコンピュートは、コンピュート名の左側に灰色の丸が付いたコンピュート リストに表示されます。

注:

新しいジョブ コンピュート (通常は推奨) でジョブを実行すると、コンピュートは終了し、ジョブが完了したときに再始動できなくなります。 一方、終了した既存の万能コンピュートに対してジョブを実行するようにスケジュールすると、そのコンピュートは 自動開始されます

手動での終了

コンピュートのリスト (コンピュートの行の四角形をクリック) またはコンピュートの詳細ページ ( [終了]をクリック) から手動でコンピュートを終了できます。

自動終了

コンピュートの自動終了を設定することもできます。 コンピュートの作成中に、コンピュートを終了するまでの非アクティブ期間を分単位で指定できます。

現在の時刻とコンピュートで実行された最後のコマンドの差が、指定された非アクティブ期間を超えている場合、Databricks はそのコンピュートを自動的に終了します。

Spark ジョブ、構造化ストリーミング、JDBC 呼び出しなど、コンピュート上のすべてのコマンドの実行が終了すると、コンピュートは非アクティブであるとみなされます。

警告

  • コンピュートは、DStream の使用から生じるアクティビティを報告しません。 これは、自動終了コンピュートが DStreams の実行中に終了する可能性があることを意味します。 DStream を実行するコンピュートの自動終了をオフにするか、構造化ストリーミングの使用を検討してください。

  • アイドル コンピュートは、終了前の非アクティブ期間中に DBU とクラウド インスタンスの料金を蓄積し続けます。

自動終了を設定する

新しいコンピュート UI で自動終了を設定できます。 チェックボックスがオンになっていることを確認し、[ Terminate after ___ of minutes of inactivity ] 設定に分数を入力します。

自動終了をオプトアウトするには、[自動終了] チェックボックスをオフにするか、非アクティブ期間として0を指定します。

注:

自動終了は、最新の Spark バージョンで最もよくサポートされています。 古い Spark バージョンには既知の制限があり、コンピュート アクティビティの不正確なレポートが発生する可能性があります。 たとえば、JDBC、R、またはストリーミング コマンドを実行するコンピュートは、コンピュートの早期終了につながる古いアクティビティ時間を報告する可能性があります。 バグ修正と自動終了の改善を利用するには、最新の Spark バージョンにアップグレードしてください。

コンピュートを削除する

コンピュートを削除すると、コンピュートが終了し、その構成が削除されます。 コンピュートを削除するには、コンピュートのリストから「削除」を選択します。ケバブメニューメニュー。

警告

この操作は元に戻せません。

ピン留めコンピュートを削除するには、まず管理者がピン留めを解除する必要があります。

Clusters APIエンドポイントを呼び出して、プログラムでコンピュートを削除することもできます。

コンピュートを再起動する

コンピュートのリスト、コンピュートの詳細ページ、またはノートブックから、以前に終了したコンピュートを再開できます。 Clusters APIエンドポイントを呼び出して、プログラムでコンピュートを開始することもできます。

Databricks は、一意のクラスター IDを使用してコンピュートを識別します。 終了したコンピュートを開始すると、Databricks は同じ ID でコンピュートを再作成し、すべてのライブラリを自動的にインストールし、ノートブックを再アタッチします。

コンピュートを再起動して最新のイメージで更新します

コンピュートを再起動すると、コンピュート リソース コンテナーと VM ホストの最新のイメージが取得されます。 ストリーミング データの処理に使用されるコンピュートなど、長時間実行されるコンピュートの場合は、定期的な再起動をスケジュールすることが重要です。

すべてのコンピューティングリソースを定期的に再起動して、最新のイメージバージョンでイメージを常に最新の状態に保つようにしてください。

ノートブックの例: 長時間実行されているコンピュートを検索する

ワークスペース管理者の場合は、各コンピュートの実行時間を決定するスクリプトを実行でき、指定した日数より古い場合はオプションで再起動できます。 Databricks は、このスクリプトをノートブックとして提供します。

スクリプトの最初の行では、構成パラメーターを定義します。

  • min_age_output: コンピュートが実行できる最大日数。 デフォルトは 1 です。

  • perform_restart: Trueの場合、スクリプトは、 min_age_outputで指定された日数よりも経過したコンピュートを再起動します。 デフォルトはFalseで、長時間実行されているコンピュートを識別しますが、再起動しません。

  • secret_configuration: REPLACE_WITH_SCOPEREPLACE_WITH_KEYを、シークレットスコープおよびキー名に置き換えます。シークレットの設定の詳細については、ノートブックを参照してください。

警告

perform_restartTrueに設定すると、スクリプトは対象となるコンピュートを自動的に再起動します。これにより、アクティブなジョブが失敗し、開いているノートブックがリセットされる可能性があります。 ワークスペースのビジネスクリティカルなジョブが中断されるリスクを軽減するには、スケジュールされたメンテナンス期間を計画し、ワークスペース ユーザーに必ず通知してください。

長時間実行されているコンピュートを特定し、必要に応じて再起動します

ノートブックを新しいタブで開く

ジョブおよび JDBC/ODBC クエリのコンピュート自動起動

終了したコンピュートに割り当てられたジョブが実行スケジュールされている場合、または JDBC/ODBC インターフェースから終了したコンピュートに接続すると、コンピュートは自動的に再起動されます。 「ジョブと JDBC接続 のコンピュートの設定 」を参照してください。

コンピュートの自動開始を使用すると、スケジュールされたジョブのコンピュートを再起動するために手動介入を必要とせずに、コンピュートが自動終了するように構成できます。 さらに、終了したコンピュートで実行するジョブをスケジュールすることで、コンピュートの初期化をスケジュールできます。

コンピュート が自動的に再起動される前に、コンピュートジョブ のアクセス制御権限がチェックされます。

注:

コンピュートが Databricks プラットフォーム バージョン 2.70 以前で作成された場合、自動起動はありません。終了したコンピュートで実行するようにスケジュールされたジョブは失敗します。

Apache Spark UI でコンピュート情報を表示する

コンピュート詳細ページの「Spark UI」タブを選択すると、Spark ジョブに関する詳細情報を表示できます。

終了したコンピュートを再起動すると、Spark UI には、終了したコンピュートの履歴情報ではなく、再起動されたコンピュートに関する情報が表示されます。

Spark UI を使用してコストとパフォーマンスの問題を診断する手順については、「Spark UI を使用してコストとパフォーマンスの問題を診断する」を参照してください。

コンピュートのログを表示する

Databricks は、コンピュート関連のアクティビティの 3 種類のログを提供します。

  • コンピュート イベント ログ。作成、終了、構成編集などのコンピュート ライフサイクル イベントをキャプチャします。

  • Apache Sparkドライバーとワーカーログは、デバッグに使用できます。

  • init スクリプトのログをコンピュートします。これは、init スクリプトのデバッグに役立ちます。

このセクションでは、コンピュート イベント ログ、ドライバーおよびワーカー ログについて説明します。 init スクリプト ログの詳細については、 「init スクリプトのログ記録」を参照してください。

コンピュートイベントログ

コンピュート イベント ログには、ユーザー アクションによって手動でトリガーされるか、Databricks によって自動的にトリガーされる重要なコンピュート ライフサイクル イベントが表示されます。 このようなイベントは、コンピュート全体の動作とコンピュート内で実行されているジョブに影響を与えます。

サポートされているイベントのタイプについては、クラスターAPIのデータ構造を参照してください。

イベントは、Databricksの他のデータ保持期間と同様に、60日間保存されます。

コンピュートのイベント ログを表示する

コンピュートのイベント ログを表示するには、コンピュートの詳細ページで[イベント ログ]タブを選択します。

イベントの詳細については、ログの行をクリックし、[ JSON ] タブをクリックして詳細を表示します。

コンピュートドライバーとワーカーのログ

ノートブック、ジョブ、ライブラリからの直接印刷ステートメントとログ ステートメントは、Spark ドライバーのログに記録されます。 これらのログ ファイルには、コンピュートの詳細ページの[ドライバー ログ]タブからアクセスできます。 ログファイルの名前をクリックしてダウンロードします。

これらのログには、次の3つの出力があります。

  • 標準出力

  • 標準エラー

  • ログ4jログ

Spark ワーカーのログを表示するには、 [Spark UI]タブを使用します。 コンピュートの ログ配信場所を構成することもできます。 ワーカー ログとコンピュート ログは両方とも、指定した場所に配信されます。

パフォーマンスの監視

Datadogエージェントをコンピュート ノードにインストールして、Datadog メトリクスを Datadog アカウントに送信することもできます。

ノートブックの例: Datadog メトリクス

Datadog メトリクス

Datadogエージェントをコンピュート ノードにインストールして、Datadog メトリクスを Datadog アカウントに送信できます。 次のノートブックは、コンピュート スコープの init スクリプトを使用してコンピュートに Datadog エージェントをインストールする方法を示しています。

すべてのコンピュートに Datadog エージェントをインストールするには、コンピュート ポリシーを使用してコンピュート スコープの init スクリプトを管理します。

Datadog Agent initスクリプトノートブックのインストール

ノートブックを新しいタブで開く