ジョブで Azure Databricks コンピューティングを使用する

Azure Databricks ジョブを実行すると、ジョブの一部として構成されたタスクは Azure Databricks コンピューティング (タスクの種類に応じて、サーバーレス コンピューティング、クラスター、または SQL ウェアハウスのいずれか) で実行されます。 ジョブを運用化するときに、コンピューティングの種類と構成オプションを選択することが重要です。 この記事では、Azure Databricks コンピューティング リソースを使用してジョブを実行するための推奨事項を提供します。

Azure Databricks ジョブでサーバーレス コンピューティングを使用する方法の詳細については、「ワークフローでサーバーレス コンピューティングを使用して Azure Databricks ジョブを実行する」を参照してください。

Note

シークレットは、クラスターの Spark ドライバーのログ ストリーム stdoutstderr からは編集されません。 機密データを保護するため、既定では、ジョブに対する "管理可能" アクセス許可、シングル ユーザー アクセス モード、共有アクセス モード クラスターを設定されたユーザーのみが、Spark ドライバーのログを表示できます。 "アタッチ可能" または "再起動可能" アクセス許可を持つユーザーがこれらのクラスターのログを表示できるようにするには、クラスター構成で次の Spark 構成プロパティを設定します: spark.databricks.acl.needAdminPermissionToViewLogs false

"分離なし" 共有アクセス モード クラスターでは、"アタッチ可能" または "管理可能" アクセス許可を持つユーザーが Spark ドライバーのログを表示できます。 ログを閲覧できるユーザーを "管理可能" アクセス許可を持つユーザーのみに制限するには、spark.databricks.acl.needAdminPermissionToViewLogstrue に設定します。

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

共有ジョブ クラスターを使用する

複数のタスクを調整するジョブでリソース使用量を最適化するには、共有ジョブ クラスターを使用します。 共有ジョブ クラスターを使用すると、同じジョブ実行内の複数のタスクでクラスターを再利用できます。 1 つのジョブ クラスターを使用して、ジョブの一部であるすべてのタスク、または特定のワークロード用に最適化された複数のジョブ クラスターを実行できます。 共有ジョブ クラスターを使用するには:

  1. タスクを作成してクラスター構成を完了するときに、[新しいジョブ クラスター] を選択します。
  2. ジョブにタスクを追加するときに新しいクラスターを選択するか、新しいジョブ クラスターを作成します。 [新しいジョブ クラスター] を選択するときに構成したクラスターは、ジョブ内の任意のタスクで使用できます。

共有ジョブ クラスターのスコープは 1 つのジョブ実行に設定され、同じジョブの他のジョブまたは実行では使用できません。

ライブラリを共有ジョブ クラスター構成で宣言することはできません。 依存ライブラリはタスク設定に追加する必要があります。

ジョブに適切なクラスターの種類を選択する

  • 新しいジョブ クラスターは、ジョブまたはタスクの実行専用のクラスターです。 共有ジョブ クラスターは、クラスターを使用する最初のタスクの開始時に作成および開始され、クラスターを使用する最後のタスクの完了後に終了します。 このクラスターは、アイドル時に終了することはなく、すべてのタスクが完了した後にのみ終了します。 共有ジョブ クラスターが失敗したか、すべてのタスクが完了する前に終了した場合は、新しいクラスターが作成されます。 単一のタスクを対象とするクラスターが作成され、タスクの開始時に開始され、タスクの完了時に終了します。 Databricks は、運用環境では、各ジョブまたはタスクが完全に分離された環境で実行されるように、新しい共有クラスターまたはタスクを対象とするクラスターを使用することを推奨しています。
  • 新しいクラスターでタスクを実行すると、タスクは Data Engineering (タスク) ワークロードとして扱われ、タスク ワークロードの料金が適用されます。 既存の汎用クラスターでタスクを実行すると、タスクはデータ分析 (汎用) ワークロードとして扱われ、汎用ワークロードの料金が適用されます。
  • 終了した既存のクラスターを選択し、ジョブの所有者が再起動可能アクセス許可を持っている場合、ジョブの実行がスケジュールされたときに、Azure Databricks によってクラスターが起動されます。
  • 既存の汎用クラスターは、一定の間隔でダッシュボードを更新するなどのタスクに最適です。

プールを使用してクラスターの起動時間を短縮する

新しいジョブ クラスターの起動時間を短縮するには、プールを作成し、プールを使用するジョブのクラスターを構成します。