Databricks ノートブックの実行コンテキスト
ノートブックをクラスターにアタッチすると、Databricks によって実行コンテキストが作成されます。 実行コンテキスト には、サポートされている各プログラミング言語 (Python、R、Scala、および SQL) の REPL 環境の状態が含まれています。ノートブックでセルを実行すると、コマンドは適切な言語の REPL 環境にディスパッチされて実行されます。
コマンド実行 API を使用して実行コンテキストを作成し、実行コンテキストで実行するコマンドを送信することもできます。同様に、コマンドは言語 REPL 環境にディスパッチされ、実行されます。
クラスターには、実行コンテキストの最大数 (145) があります。 実行コンテキストの数がこのしきい値に達すると、クラスターにノートブックをアタッチしたり、新しい実行コンテキストを作成したりすることはできません。
アイドル実行コンテキスト
実行コンテキストは、最後に完了した実行が設定されたアイドルしきい値を超えたときに アイドル 状態と見なされます。 最後に完了した実行は、ノートブックがコマンドの実行を最後に完了した時刻です。 アイドルしきい値は、最後に完了した実行からノートブックを自動的にデタッチするまでに経過する必要がある時間です。
クラスターが最大コンテキスト制限に達すると、Databricks は必要に応じてアイドル実行コンテキスト (最も使用されていないものから) を削除 (削除) します。 コンテキストが削除されても、コンテキストを使用するノートブックはクラスター にアタッチされ、クラスターのノートブック リストに表示されます。 ストリーミング ノートブックはアクティブに実行されていると見なされ、実行が停止されるまでコンテキストが削除されることはありません。 アイドル状態のコンテキストが削除された場合、UI には、コンテキストを使用しているノートブックがアイドル状態のためにデタッチされたことを示すメッセージが表示されます。
実行コンテキストの最大数を持つクラスターにノートブックをアタッチしようとし、アイドル状態のコンテキストがない場合 (または自動削除が無効になっている場合)、現在の最大実行コンテキストのしきい値に達したことを示すメッセージが UI に表示され、ノートブックはデタッチされた状態のままになります。
プロセスをフォークした場合、プロセスをフォークしたリクエストの実行が戻った後も、アイドル状態の実行コンテキストはアイドル状態と見なされます。 Spark では、個別のプロセスをフォークすることは お勧めしません 。
コンテキストの自動削除 の設定
自動削除はデフォルトで有効になっています。 クラスターの自動削除を無効にするには、 Spark プロパティを spark.databricks.chauffeur.enableIdleContextTracking false
に設定します。
Spark と Databricks Runtime のバージョン を確認する
ノートブックがアタッチされているクラスターの Spark バージョンを確認するには、次のコマンドを実行します。
spark.version
ノートブックがアタッチされているクラスターの Databricks Runtime バージョンを確認するには、次のコマンドを実行します。
spark.conf.get("spark.databricks.clusterUsageTags.sparkVersion")
注
このsparkVersion
タグと、 クラスター API と ジョブ API のエンドポイントに必要な spark_version
プロパティはどちらも、Spark バージョンではなく Databricks Runtime バージョンを参照します。