メインコンテンツまでスキップ

コンピュートの問題のトラブルシューティング

この記事では、ワークスペースでのコンピュートの動作をトラブルシューティングする必要がある場合に使用できるリソースを提供します。 この記事のトピックは、コンピュートのスタートアップの問題に関連しています。

その他のトラブルシューティングの記事については、以下を参照してください。

Genie Codeを使用してコンピュート環境エラーをデバッグする

Genie Code は、ライブラリのインストール エラーの診断と修正方法の提案に役立ちます。

コンピュートの ライブラリ ページでは、 Genie コード アバター アイコン 失敗したパッケージ名の横と、失敗したパッケージをクリックするとポップアップ表示される詳細モーダルに、 「エラーの診断」ボタンが表示されます。 クリック Genie コード アバター アイコンエラーを診断し 、デバッグに役立つ Genie Code を使用します。Genie Code はエラーを診断し、可能な解決策を提案します。

アシスタントを使用してコンピュート ライブラリのインストール エラーをデバッグします。

Genie Code を使用して、ノートブック内のコンピュート環境エラーをデバッグすることもできます。 デバッグ環境エラーを参照してください。

新しいコンピュートが反応しない

ワークスペースのデプロイが成功したように見えても、最初のテストコンピュートが応答しないことに気付く場合があります。 約 20 分から 30 分後、 コンピュート イベント ログを確認します。 次のようなエラーメッセージが表示される場合があります。

The compute plane network is misconfigured. Please verify that the network for your compute plane is configured correctly. Error message: Node daemon ping timeout in 600000 ms ...

このメッセージは、ルーティングまたはファイアウォールが正しくないことを示しています。 Databricks 新しいコンピュートの EC2 インスタンスをリクエストしましたが、 EC2 インスタンスがブートストラップしてコントロールプレーンに接続するのを待つのに長い遅延が発生しました。 コンピュートマネージャーはインスタンスを終了し、このエラーを報告します。

ネットワーク設定では、コンピュートノードインスタンスがDatabricksコントロールプレーンに正常に接続できるようにする必要があります。コンピュートを使用するよりも迅速なトラブルシューティング手法として、 EC2 インスタンスをワークスペースサブネットの1つにデプロイし、 ncpingtelnettracerouteなどの一般的なネットワークトラブルシューティング手順を実行できます。 各リージョンのリレー CNAME については、顧客管理VPC の記事に記載されています。 アーティファクトストレージの場合は、S3 へのネットワークパスが成功していることを確認します。

リージョン別のアクセス ドメインと IP については、「 Databricks サービスと資産の IP アドレスとドメイン」を参照してください。 リージョン エンドポイントについては、「 (推奨) リージョン エンドポイントの構成」を参照してください。 次の例では、AWS リージョン の eu-west-1を使用しています。

Bash
# Verify access to the web application
nc -zv ireland.cloud.databricks.com 443

# Verify access to the secure compute connectivity relay
nc -zv tunnel.eu-west-1.cloud.databricks.com 443

# Verify S3 global and regional access
nc -zv s3.amazonaws.com 443
nc -zv s3.eu-west-1.amazonaws.com 443

# Verify STS global and regional access
nc -zv sts.amazonaws.com 443
nc -zv sts.eu-west-1.amazonaws.com 443

# Verify regional Kinesis access
nc -zv kinesis.eu-west-1.amazonaws.com 443

これらがすべて正しく返された場合、ネットワークは正しく設定されている可能性があります。ただし、ファイアウォールを使用している場合は別の問題が発生している可能性もあります。ファイアウォールに、ディープパケットインスペクション、SSLインスペクション、またはDatabricksコマンドが失敗する原因となる何かが含まれている可能性があります。Databricksサブネットに含まれるEC2インスタンスを使用して、以下を試してください。

Bash
curl  -X GET -H 'Authorization: Bearer <token>' \
https://<workspace-name>.cloud.databricks.com/api/2.0/clusters/spark-versions

<token> を自分の個人用アクセストークンに置き換え、ワークスペースの正しいURLを使用します。「トークン管理 API」を参照してください。

このリクエストが失敗した場合は、SSL検証を削除するリクエストで -k オプションを試してください。これが -k オプションで機能する場合は、ファイアウォールによって SSL証明書に問題が発生しています。

以下を使用して SSL 証明書を確認し、ドメイン名を地域の コントロールプレーン Web アプリケーションドメイン に置き換えます。

Bash
openssl s_client -showcerts -connect oregon.cloud.databricks.com:443

このコマンドは、リターン コードと Databricks 証明書を表示します。エラーが返された場合は、ファイアウォールが正しく設定されていないことを示しており、修正する必要があります。

SSLの問題はネットワーク層の問題ではない点に注意してください。ファイアウォールでトラフィックを表示しても、これらのSSLの問題は表示されません。ソースと宛先リクエストの確認は問題なく機能します。

メタストアまたはコンピュート イベント ログの使用中に問題が発生するMETASTORE_DOWN

ワークスペースが稼働しているように見え、コンピュートを設定できるにもかかわらず、コンピュートのイベントログMETASTORE_DOWNイベントがある場合、またはメタストアが機能していないように見える場合は、SquidプロキシなどのWebアプリケーションファイアウォール(WAF)を使用しているかどうかを確認してください。コンピュートのメンバーは、WAF経由で動作しないいくつかのサービスに接続する必要があります。

コンピュート スタート エラー: インスタンスで Spark コンテナを起動できませんでした

次のようなコンピュート ログ エラーが表示される場合があります。

Cluster start error: failed to launch spark container on instance ...
Exception: Could not add container for ... with address ....
Timed out with exception after 1 attempts

この コンピュートログエラー は、インスタンスがSTSを使用してルート S3 バケットに入ることができないことが原因である可能性があります。 これは通常、流出防止を実装している場合、VPC エンドポイントを使用して通信をロックダウンしている場合、またはファイアウォールを追加している場合に発生します。

修正するには、以下のいずれかの操作を行います。

エラーに関する詳細情報を取得するには、decode-authorization-message AWS CLI コマンドを呼び出します。詳細については、デコード認証メッセージに関するAWSの記事を参照してください。コマンドは以下のようになります。

Bash
aws sts decode-authorization-message --encoded-message

STS VPCEに対してワークスペースとは異なるセキュリティグループを使用してVPCエンドポイント(VPCE)を設定すると、このエラーが発生することがあります。セキュリティグループを更新することにより各セキュリティグループ内のリソースが相互に通信できるようにするか、あるいはSTS VPCE をワークスペースサブネットと同じセキュリティグループに配置してください。

コンピュートノードは、STS を使用して、顧客 S3 ポリシーを使用してルートS3バケットにアクセスする必要があります。ネットワーク パスは、 DatabricksコンピュートノードからAWS STS サービスで使用できる必要があります。