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 3 years have passed since last update.

Databricksにて外部Hive Metastore(ver:2.3.7)を構築する際にデータベースを初期化する方法について

Last updated at Posted at 2021-07-23

概要

2021年7月23時点にて、Databricksにて外部Hive Metastore(version:2.3.7)を構築する際にデータベースの初期化をDatabricks(Spark)から実施できなかったため、Hiveのコードに含まれるDDLを事前に実行する方法を共有します。下記のいずれのDBでも初期化がされず、同様にHiveのDDLを事前に実行することで適切に動しました。

  • Azure SQL Database
  • Azure Database for MySQL

Databricksのドキュメントにて下記のように記載がある通り、外部Hive Metastoreを構築する際のデータベースの初期化(≒テーブル作成)を実施してくれるとの記載があったので実行したのですが、私の環境では動作しませんでした。

datanucleus.autoCreateSchema true
datanucleus.fixedDatastore false

image.png
引用元:外部Apache Hiveメタストア - Azure Databricks - Workspace | Microsoft Docs

私の環境では、下記のようなエラーメッセージが表示されておりました。

image.png

検証環境

Databricks Runtime 7.3とDatabricks Runtime 8.3のいずれでも同様の動作でした。

検証環境1

databricks runtime: 7.3.x-cpu-ml-scala2.12
Python version: 3.7.10
pyspark version: 3.0.0.dev0

検証環境2

databricks runtime: 8.3.x-scala2.12
Python version: 3.8.8
pyspark version: 3.1.2.dev0

手順

1. GithubにおけるHiveのレポジトリから想定のデータベースとHiveのバージョン(今回は2.3.0)のDDL文をダウンロードします。

image.png
引用元:hive/hive-schema-2.3.0.mssql.sql at master · apache/hive (github.com)

2. ダウンロードしたファイルを実行します。

MySQLにてすべてのクエリを実行する場合にはSOURCE hive-txn-schema-2.3.0.mysql.sql;のところでエラーとなるため、その後のINSERT INTO VERSION...のところも実行してください。

image.png

3. エラー表示が消え、データベース・テーブルが作成できることを確認

image.png

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?