Data Science Workspace トラブルシューティングガイド

このドキュメントでは、Adobe Experience Platform Data Science Workspaceに関するよくある質問に対する回答を示します。 Platform APIに関する一般的な質問とトラブルシューティングについては、Adobe Experience Platform APIのトラブルシューティングガイドを参照してください。

JupyterLab 環境が Google Chrome

重要

この問題は解決しましたが、Google Chrome 80.xブラウザーには引き続き存在する可能性があります。 Chromeブラウザーが最新であることを確認してください。

Google Chromeブラウザーのバージョン80.xでは、すべてのサードパーティCookieがデフォルトでブロックされます。 このポリシーは、Adobe Experience Platform内でJupyterLabが読み込まれない可能性があります。

この問題を修正するには、次の手順を実行します。

Chromeブラウザーで、右上に移動し、設定​を選択します(または、アドレスバーに「chrome://settings/」をコピーして貼り付けることもできます)。 次に、ページの下部までスクロールし、詳細設定​ドロップダウンをクリックします。

Chrome の詳細設定

プライバシーとセキュリティ」セクションが表示されます。次に、「サイトの設定」をクリックし、「Cookie とサイトデータ」をクリックします。

Chrome の詳細設定

Chrome の詳細設定

最後に、「サードパーティCookieのブロック」を「オフ」に切り替えます。

Chrome の詳細設定

メモ

または、サードパーティCookieを無効にして[*を追加します。]ds.adobe.netを許可リストに追加します。

アドレスバーの「chrome://flags/」に移動します。右側のドロップダウンメニューを使用して、「SameSite by default cookies」というフラグを探して無効にします。

SameSite フラグを無効化

手順 2 の後、ブラウザーを再起動するように求められます。再起動後は、Jupyterlabにアクセスできるようになります。

SafariでJupyterLabにアクセスできないのはなぜですか?

Safariは、SafariではデフォルトでサードパーティCookieを無効にします(12未満)。 Jupyter仮想マシンインスタンスは親フレームとは異なるドメインに存在するので、現在、Adobe Experience PlatformではサードパーティCookieを有効にする必要があります。 サードパーティCookieを有効にするか、Google Chromeなど別のブラウザーに切り替えてください。

Safari 12の場合は、ユーザーエージェントを「Chrome」または「Firefox」に切り替える必要があります。 ユーザーエージェントを切り替えるには、まず​Safari​メニューを開き、環境設定​を選択します。 プリファレンスウィンドウが表示されます。

Safariの環境設定

Safariの環境設定ウィンドウで、「詳細」を選択します。 次に、「メニューバーに開発メニューを表示」ボックスをオンにします。 この手順が完了したら、環境設定ウィンドウを閉じることができます。

Safariの詳細設定

次に、上部ナビゲーションバーから​開発​メニューを選択します。 開発​ドロップダウンで、ユーザーエージェント​の上にマウスポインターを置きます。 使用する​Chrome​または​Firefox​ユーザーエージェント文字列を選択できます。

開発メニュー

JupyterLab内のファイルをアップロードまたは削除しようとすると、「403 Forbidden」というメッセージが表示されるのはなぜですか?

ブラウザーがGhosteryやAdBlock Plusなどの広告ブロックソフトウェアで有効になっている場合、JupyterLabが正常に動作するには、各広告ブロックソフトウェアでドメイン「*.adobe.net」を許可する必要があります。 これは、JupyterLab仮想マシンがExperience Platformドメインとは異なるドメインで実行されるためです。

Jupyter Notebookの一部が乱れて見えるのはなぜですか、それともコードとしてレンダリングされないのですか。

これは、問題のセルが誤って「Code」から「Markdown」に変更された場合に発生する可能性があります。コードセルにフォーカスがある間に Esc + M キーを押すと、セルの種類が Markdown に変更されます。セルの種類は、選択したセルのノートブックの上部にあるドロップダウンインジケーターで変更できます。セルの種類をコードに変更するには、まず、変更するセルを選択します。次に、セルの現在の種類を示すドロップダウンをクリックし、「Code」を選択します。

カスタムのPythonライブラリをインストールする方法を教えてください。

Pythonカーネルは、多くの一般的な機械学習ライブラリと共にプリインストールされています。 ただし、コードセル内で次のコマンドを実行すると、追加のカスタムライブラリをインストールできます。

!pip install {LIBRARY_NAME}

プリインストールされたPythonライブラリの完全なリストについては、JupyterLabユーザーガイドの付録の節を参照してください。

カスタム PySparkライブラリをインストールできますか?

残念ながら、PySpark カーネルの追加ライブラリはインストールできません。ただし、アドビのカスタマーサービス担当者に連絡して、カスタム PySpark ライブラリをインストールしてもらうことができます。

事前インストールされている PySpark ライブラリのリストについては、JupyterLab ユーザーガイドの付録の節を参照してください。

JupyterLab SparkまたはPySparkカーネルに対してSparkクラスターリソースを設定できますか?

ノートブックの最初のセルに次のブロックを追加することで、リソースを設定できます。

%%configure -f 
{
    "numExecutors": 10,
    "executorMemory": "8G",
    "executorCores":4,
    "driverMemory":"2G",
    "driverCores":2,
    "conf": {
        "spark.cores.max": "40"
    }
}

設定可能なプロパティの完全なリストを含む、Sparkクラスターリソースの設定について詳しくは、『JupyterLabユーザーガイド🔗』を参照してください。

大規模なデータセットに対して特定のタスクを実行しようとするとエラーが発生するのはなぜですか?

Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues.などの理由でエラーが発生した場合は、通常、ドライバーまたは実行者のメモリが不足しています。 データ制限と大規模なデータセットでのタスクの実行方法について詳しくは、 JupyterLabノートブックデータアクセスのドキュメントを参照してください。 通常、このエラーはmodeinteractiveからbatchに変更することで解決できます。

また、大きなSpark/PySparkデータセットを書き込む際に、書き込みコードを実行する前にデータ(df.cache())をキャッシュすると、パフォーマンスが大幅に向上します。

データの読み取り中に問題が発生し、データに変換を適用する場合は、変換の前にデータをキャッシュしてみてください。 データをキャッシュすると、ネットワーク全体での複数の読み取りを防ぐことができます。 まず、データを読み取ります。 次に、データをキャッシュ(df.cache())します。 最後に、変換を実行します。

Spark/PySparkノートブックがデータの読み取りと書き込みに長くかかるのはなぜですか?

fit()の使用など、データに対して変換を実行する場合、変換が複数回実行されている可能性があります。 パフォーマンスを向上させるには、fit()を実行する前にdf.cache()を使用してデータをキャッシュします。 これにより、変換は1回だけ実行され、ネットワークを介した複数の読み取りを防ぐことができます。

推奨順序: データの読み取りから開始します。次に、変換を実行し、次にデータをキャッシュ(df.cache())します。 最後に、fit()を実行します。

Spark/PySparkノートブックが動作しないのはなぜですか?

次のいずれかのエラーが表示される場合:

  • ステージエラーのためジョブが中止されました…各パーティション内の要素数が同じRDDのみをzipできます。
  • リモートRPCクライアントが関連付けを解除し、その他のメモリエラーが発生しました。
  • データセットの読み取りと書き込みの際のパフォーマンスが低下。

データを書き込む前に、データ(df.cache())をキャッシュしていることを確認してください。 ノートブックでコードを実行する場合、fit()などのアクションの前にdf.cache()を使用すると、ノートブックのパフォーマンスを大幅に向上できます。 データセットを書き込む前にdf.cache()を使用すると、変換は複数回ではなく、1回だけ実行されます。

Docker Hub Data Science Workspaceの制限

2020年11月20日をもって、Docker Hubの匿名での認証済み使用に関するレート制限が施行されました。 匿名ユーザーと無料Docker Hubユーザーは、6時間ごとに100個のコンテナイメージプルリクエストに制限されます。 これらの変更の影響を受ける場合は、次のエラーメッセージが表示されます。ERROR: toomanyrequests: Too Many Requests.またはYou have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits.

現在、この制限は、6時間以内に100個のノートブックをレシピに作成しようとしている場合、または頻繁に拡大/縮小されるData Science Workspace内でSparkベースのノートブックを使用している場合にのみ、組織に影響します。 ただし、これらのクラスタは、アイドルアウトする前に2時間アクティブなままになるので、これは考えられません。 これにより、クラスターがアクティブな場合に必要なプル数が減ります。 上記のエラーが発生した場合は、Docker制限がリセットされるまで待つ必要があります。

Docker Hubレート制限について詳しくは、DockerHubのドキュメントを参照してください。 このためのソリューションは、今後のリリースで使用され、予想されるものです。

このページ