0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DatabricksでMETASTORE_DOES_NOT_EXISTエラーが出る際の対策

Posted at

クロスアカウントのS3にアクセスする際に、IAMの設定をして接続できるはずなのにMETASTORE_DOES_NOT_EXISTエラーが出ることがあります。

Python
display(dbutils.fs.ls("s3a://ty-databricks-cross-account-bucket"))

Screenshot 2023-01-22 at 13.49.08.png

AnalysisException: [RequestId=ac5c871a-62d6-4f43-8799-7ab10a58da75 ErrorClass=METASTORE_DOES_NOT_EXIST] No metastore assigned for the current workspace.

発生条件

これは、以下の条件で発生します。

  • Unity Catalogがセットアップされていない。
  • Personal Computeの(あるいはアクセスモードが設定されている)クラスターを使用している。

Personal Computeはこちらで説明していますが、Unity Catalogへの接続を前提としたクラスターを作成します。クロスアカウントのS3にアクセスするなどした際、Unity Catalogのメタストアを確認しに行くのですが、これが存在しないため、このようなエラーになっています。

対策

Unity Catalogをセットアップすればいいのですが、もう一つの方法として「Unity Catalogを参照しに行かないクラスター」を作成するというものがあります。これは現時点ではレガシーとなりますが、上述のアクセスモードを設定しないクラスターを作成することになります。

  1. コンピューティングを作成をクリックします。
    Screenshot 2023-01-22 at 13.54.23.png
  2. 画面上のUIプレビューにマウスカーソルを移動します。トグルスイッチが表示されるので、これをオフにします。レガシーなクラスター作成画面に変更されます。
    Screenshot 2023-01-22 at 13.55.22.png
  3. クラスターモードシングルノードなどにして、クラスターを作成します。必要に応じて、インスタンスプロファイルやSpark設定を行い、S3やGlueにアクセスできるようにしておきます。
    Screenshot 2023-01-22 at 13.57.56.png

これでMETASTORE_DOES_NOT_EXISTエラーを解消できるはずです。

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?