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?

Databricks 上で Hadoop Catalog により Apache Iceberg を実行する際の Failed to find data source: ICEBERG への対応方法

Last updated at Posted at 2025-02-25

概要

Databricks 上で Hadoop Catalog により Apache Iceberg を実行する際に発生した下記エラーの対応方法を紹介します。 Unity Cataglog を利用できるクラスターで発生するエラーのようです。対応方法は、 Unity Catalog を利用できない分離なし共有アクセスモードに変更することです。

org.apache.spark.SparkClassNotFoundException: [DATA_SOURCE_NOT_FOUND] Failed to find data source: ICEBERG. Please find packages at https://spark.apache.org/third-party-projects.html.

image.png

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

エラーの再現方法

アクセスモードを 分離なし共有ではなく専用に設定

image.png

エラーとなることを確認

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

org.apache.spark.SparkClassNotFoundException: [DATA_SOURCE_NOT_FOUND] Failed to find data source: ICEBERG. Please find packages at https://spark.apache.org/third-party-projects.html.

image.png

エラーへの対応方法

クラスターのアクセスモードを分離なし共有に変更

image.png

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

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

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?