注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Spark モジュール内の Code Workbook 環境を初期化すると、一連のメタデータがモジュールに付与されます。このメタデータは、計算情報と環境情報の二つのカテゴリーに分けることができます。セッションとは、これらの設定のインスタンス化であり、Spark モジュールのライフサイクルの一部であるか、非公式には「ある Spark モジュールの寿命中に何が真実であったか」を示します。
計算情報には、Spark モジュールに付与された Spark 設定の詳細、および jar 依存関係、リソース識別子、起動するモジュールの種類などの関連情報が含まれます。一方、環境情報はさらに二つのカテゴリー、要求された環境と解決された環境に分けることができます。要求された環境とは、pandas=2.*
や python<3.10
のような conda の仕様のセットを要求すること、一方、解決された環境とは、要求された環境によって確立された制約を満たすパッケージの解決されたセットを指します。要求された環境は非決定的であることに注意が必要で、一方、解決された環境は、定義上、与えられた要求された環境の恒久的な解決策です。その結果、二つの同一の要求された環境は、異なる解決された環境につながることがあります。たとえば、2017年にpython>=3.6
を要求すると、Python 3.6に解決する可能性が高く、今日では同じ要求がPython 3.10につながる可能性があります。
Code Workbook は、Workbook のすべての最近のセッションに関する情報を提供します。Workbook のセッション履歴を確認するには、Code Workbook の Environment ドロップダウンを選択し、View session history を選択します。
Session history ウィンドウは、三つの異なるタブを通じて情報を提供します:Compute information、Requested environment、そして Resolved environment。左のペインはセッションの ID とセッションが初期化された時間を提供します。セッション ID の左のアイコンは、正常に初期化されたこと(緑)、失敗したこと(赤)、またはその他(青)を示します。青のセッションは、通常、セッションが初期化を完了していないことを意味し、したがって失敗状態または成功状態には達していません。
Compute information タブは、特定のセッションのために要求された Spark モジュールの種類についての情報を提供します:
sparkModuleRid
と sessionId
が同じ一意の識別子を共有していることに気付くでしょうWARM_MODULE
またはON_DEMAND_MODULE
のどちらかになります。セッションがウォームモジュールキューからすでに初期化されたモジュールを使用したか、または初期化プロセスを開始するために新しいモジュールを要求したかどうかを示します。Requested Environment タブは、初期化の開始前の所望の環境設定についての情報を提供します:
solve
、 file
、または docker
のいずれかになります。Code Workbook の初期化の種類については、environment optimizations に関するドキュメンテーションを参照してください。profileRid
になります。カスタム環境の場合、これはプロファイルがカスタマイズされたワークブックの workbookRid
になります。Resolved Environment タブは、初期化の一部として使用された環境パッケージについての情報を提供します。これには、環境の初期化にかかった時間、および最終的にモジュールにインストールされたパッケージとそのバージョンが含まれます。この情報は特に重要であり、なぜなら Code Workbook のセッションロールバック機能は、要求された環境ではなく、前のセッションの解決された環境を借用するからです。
特定の環境がどのように変化したかを理解するために、二つのセッションを比較することがよく役立ちます。Session history ウィンドウは、現在のセッションと任意の歴史的なセッションを比較することを可能にします。セッション履歴比較タブにアクセスするには、セッション履歴ウィンドウの右上で Compare sessions を選択します。
セッション比較メニューは、二つのウィンドウを隣に提供します。右側には、現在のセッションの情報が表示されます。左側には、Sessions リストから任意のセッションを表示して比較することができます。左側に表示する比較セッションを切り替えるには、Sessions リストから任意のセッションを選択します。ウィンドウの右上にある Exit comparison を選択することで、いつでも比較ビューを終了することができます。左側の選択されたセッションは選択されたままになります。 セッションは、利用可能なすべてのタブで比較することができます。2つのセッションの 計算情報 を比較すると、モジュールの利用可能メモリの変化を理解するのに役立ちます。 要求された環境 を比較すると、2つのセッション間で手動で変更された環境を理解するのに役立ちます。一方、 解決された環境 を比較すると、2つのセッション間でインストールされた異なるバージョンを理解するのに役立つかもしれません。
以下の例では、セッション比較の様々なタブを使用することで、2つのセッションについて以下の情報を明らかにします:
特定の場合には、過去のセッションの設定とまったく同じ状態に一時的に戻したいことがあります。Code Workbook では、このような動作を可能にするために、セッションをピン留めする機会を提供します。セッションをピン留めするということは、過去のセッションと同じメタデータを使用して全く新しいセッションと Spark モジュールを初期化し、見かけ上同一の環境を再現することを意味します。ピン留めされたセッションは、新鮮なモジュールを初期化するために過去のセッションから 解決 情報を借ります。これは特に重要で、同じ解決環境を使用すると、インストールされたパッケージが同じであることが保証されます。一方、同じ要求環境を使用してもそうはなりません。その結果、セッションをピン留めすると、以前に正常に動作していた環境に戻る効果をシミュレートします。初期化モードなど、一部のメタデータは過去のセッションから借りられません。
セッションをピン留めするには、 セッション履歴 ウィンドウに移動し、ピン留めしたいセッションを選択します。次に、パネルの右下にある セッションをピン留め を選択します。Workbook の現在のブランチには、最大24時間持続するピン留めされたセッションのオーバーライドがあります。バナーには、オーバーライドの残り時間と、ピンを削除するオプションが表示されます。その期間中、すべての後続の対話型環境の初期化は、ピン留めされたセッションの情報を借ります。期間が経過するか、セッションが手動でピン留め解除されると、Workbookは現在設定されている環境を使用するように戻ります。
セッションのピン留めはデバッグのために設計されており、長期間、本番環境でのパイプラインに依存すべきではありません。そのため、ピン留めされたセッションは 対話型 環境にのみ影響します。Code Workbook インターフェース外で実行されるビルド、たとえばスケジュールされたビルドは、ピン留めされたセッションのオーバーライドの影響を受けません。セッションのピン留めは、たまにトラブルシューティングや実験に制限することをお勧めします。代わりに、セッション履歴機能を使用して、さまざまなセッション間の違いを理解し、環境定義を直接編集します。
セッションをピン留めする際には、一部の制限が適用されます。ピン留めされたセッションは無限に続かず、すべてのセッションをピン留めすることはできませんし、すべての初期化がピン留めされたセッションに影響を受けるわけではありません。以下に、セッションをピン留めすることを考慮する際に注意すべき制限の一覧を示します:
上記の理由から、セッションのピン留めは、長期間、本番環境でのパイプラインに依存すべきではないデバッグ機能です。
上記で述べた セッション履歴、セッションの比較、セッションのピン留め の機能は、環境のトラブルシューティングにおいて非常に有用です。特に、以前に動作していた環境の失敗を対処するのに役立ちます。次のステップに従って、そのようなケースを修復してください:
環境は過去に動作していましたか?
セッションの比較機能を使用して、現在失敗しているセッションを以前に成功していたものと選択し、環境の違いを確認します。
(オプション) 前のステップでトラブルシューティングを行う間、セッションのピン留め機能を使用して、まずピン留めされたバージョンの環境が動作することを確認し、より恒久的な解決策が見つかるまでの間、Workbookの機能を一時的に解除します。
環境が失敗する原因を発見した後、プロファイルの設定を適切に調整して、状況を恒久的に修復します。