1
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?

Databricks 上で Hadoop Catalog により Apache Iceberg を実行する際の Java のバージョンによるエラーへの対応方法

Last updated at Posted at 2025-02-25

概要

Databricks 上で Hadoop Catalog により Apache Iceberg を実行する際に発生した下記エラーの対応方法を紹介します。Databricks Runtime 12.2 の Java のバージョンが原因のようです。 Iceberg 関連のライブラリのバージョンを 1.6.1 にすることで解決できました。

Failure starting repl. Try detaching and re-attaching the notebook.

java.lang.Exception: java.lang.UnsupportedClassVersionError: org/apache/iceberg/spark/SparkCatalog has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

image.png

Databricks Runtime 12.2 のバージョンは、ドキュメントに記載されてます。

image.png

引用元:Databricks Runtime 12.2 LTS - Azure Databricks | Microsoft Learn

Databricks 上で Hadoop Catalog により Apache Iceberg を利用するには、下記の設定が必要です。

  • Databricks Runtime のバージョンを 12.2LTS 以前にすること
  • アクセスモードを分離なし共有(Uniyt Catalog 利用不可のモード」)にすること
  • Java 8 に対応したライブラリ(Iceberg 1.6.1 以前のライブラリ)を利用すること
  • Spark 構成に Iceberg 関連の設定を実施

事前準備

ベースとなるクラスターを作成

Databricks Runtime にて12.2を選択

image.png

アクセスモードを 分離なし共有に設定

image.png

Spark 構成に Iceberg 関連の設定を実施

spark.sql.catalog.spark_catalog.warehouseにて指定してディレクトリにテーブルのデータが書きこまれる。

spark.sql.catalog.spark_catalog = org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.spark_catalog.type = hadoop
spark.sql.catalog.spark_catalog.warehouse = dbfs:/Iceberg
spark.sql.extensions = org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions

image.png

Iceberg 関連ライブラリであるorg.apache.iceberg:iceberg-spark-runtime-3.3_2.13:1.6.1をインストール

クラスターのライブラリタブにて、新規インストールを選択し、ライブラリをインストールウィドウにてMaveをチェック後に、

image.png

org.apache.iceberg iceberg-spark-runtimeと入力すると下記のようにバージョンごとのライブラリを表示し、org.apache.iceberg:iceberg-spark-runtime-3.3_2.131.6.1リリースを選択後に選択を選択

image.png

org.apache.iceberg:iceberg-spark-runtime-3.3_2.13:1.6.1と入力されたことを確認後に、インストールを選択

image.png

エラーの再現方法

インストール済みの Iceberg 関連ライブラリをアンインストール

Iceberg 関連ライブラリを(org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.8.0)に変更

image.png

エラーとなることを確認

%sql
CREATE TABLE ICEBERG_TBL_4(ID INT,NAME STRING) USING ICEBERG;
INSERT INTO ICEBERG_TBL_4 VALUES(1,"Shraddha");
SELECT * FROM ICEBERG_TBL_4;

Failure starting repl. Try detaching and re-attaching the notebook.

java.lang.Exception: java.lang.UnsupportedClassVersionError: org/apache/iceberg/spark/SparkCatalog has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

image.png

エラーへの対応方法

既存の Iceberg 関連ライブラリをアンインストール

image.png

image.png

Iceberg 関連ライブラリであるorg.apache.iceberg:iceberg-spark-runtime-3.3_2.13:1.6.1をインストール

image.png

クラスターを再起動

image.png

エラーとなったコードが正常終了することを確認

%sql
CREATE TABLE ICEBERG_TBL_4(ID INT,NAME STRING) USING ICEBERG;
INSERT INTO ICEBERG_TBL_4 VALUES(1,"Shraddha");
SELECT * FROM ICEBERG_TBL_4;

image.png

1
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
1
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?