すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:Spark アプリケーションの構成パラメーター

最終更新日:Dec 18, 2025

AnalyticDB for MySQL の Spark 構成パラメーターは、Apache Spark のものと似ています。このトピックでは、Apache Spark とは異なる AnalyticDB for MySQL の構成パラメーターについて説明します。

注意事項

Spark アプリケーションの構成パラメーターは、Spark アプリケーションの動作とパフォーマンスを構成および調整するために使用されます。これらのパラメーターのフォーマットは、使用する Spark 開発ツールによって異なります。

開発ツール

構成パラメーターのフォーマット

構成例

SQL エディター

set key=value;

set spark.sql.hive.metastore.version=adb;

Spark Jar エディター

"key": "value"

"spark.sql.hive.metastore.version":"adb"

Notebook エディター

"key": "value"

"spark.sql.hive.metastore.version":"adb"

spark-submit コマンドラインインターフェイス

key=value

spark.sql.hive.metastore.version=adb

Driver と Executor のリソース指定

パラメーター

必須

デフォルト値

説明

Apache Spark の対応パラメーター

spark.adb.acuPerApp

いいえ

なし

単一の Spark ジョブで使用される ACU 数。有効値:[2, ジョブリソースグループの最大コンピューティングリソース]。

このパラメーターを構成すると、システムは Spark ドライバーの仕様、Spark エグゼキュータの仕様、および Spark エグゼキュータノードの数を自動的に計算して構成します。

spark.adb.acuPerApp の構成戦略を表示するにはクリック

  • spark.adb.acuPerApp と他のすべてのリソースパラメーター (spark.driver.resourceSpec、spark.executor.resourceSpec、spark.executor.instances を含む) の両方を構成した場合、spark.adb.acuPerApp は無効になり、他のリソースパラメーターの値は変更されません。

  • spark.adb.acuPerApp のみを構成した場合、spark.adb.acuPerApp は有効になり、他のすべてのリソースパラメーターは spark.adb.acuPerApp に基づいて自動的に計算および構成されます。

  • 他の構成の組み合わせでは、spark.adb.acuPerApp は有効であり、システムは明示的に構成されていないリソースパラメーター (spark.driver.resourceSpec、spark.executor.resourceSpec、および spark.executor.instances) をこのパラメーターに基づいて自動的に計算します。明示的に構成されたパラメーターの値は変更されません。

N/A

spark.driver.resourceSpec

はい

medium

Spark ドライバーのリソース仕様。各タイプは異なる仕様に対応します。詳細については、このトピックの「Spark のリソース仕様」表の「タイプ」列をご参照ください。

重要

Spark アプリケーションを送信する場合、Apache Spark パラメーターを使用し、このトピックの「Spark のリソース仕様」表に記載されているコアとメモリの値に基づいてパラメーターを構成できます。

例:CONF spark.driver.resourceSpec = c.small;。この例では、Spark ドライバーは 1 コアと 2 GB のメモリを提供します。

spark.driver.cores および spark.driver.memory

spark.executor.resourceSpec

はい

medium

各 Spark エグゼキュータのリソース仕様。各タイプは異なる仕様に対応します。詳細については、このトピックの「Spark のリソース仕様」表の「タイプ」列をご参照ください。

重要

Spark アプリケーションを送信する場合、Apache Spark パラメーターを使用し、このトピックの「Spark のリソース仕様」表に記載されているコアとメモリの値に基づいてパラメーターを構成できます。

例:CONF spark.executor.resourceSpec = c.small;。この例では、各 Spark エグゼキュータは 1 コアと 2 GB のメモリを提供します。

spark.executor.cores および spark.executor.memory

spark.executor.instances

いいえ

ジョブリソースグループの最大コンピューティングリソース/5

起動される Spark エグゼキュータの数。

spark.executor.instances

spark.adb.driverDiskSize

いいえ

なし

大容量のディスクストレージ要件を満たすために Spark ドライバーにマウントされる追加のディスクストレージのサイズ。デフォルトでは、追加のディスクストレージは /user_data_dir ディレクトリにマウントされます。

単位:GiB。有効値:(0,100]。例:spark.adb.driverDiskSize=50Gi。この例では、Spark ドライバーにマウントされる追加のディスクストレージは 50 GiB に設定されます。

N/A

spark.adb.executorDiskSize

いいえ

なし

シャッフル操作の要件を満たすために Spark エグゼキュータにマウントされる追加のディスクストレージのサイズ。デフォルトでは、追加のディスクストレージは /shuffle_volume ディレクトリにマウントされます。

単位:GiB。有効値:(0,100]。例:spark.adb.executorDiskSize=50Gi。この例では、Spark エグゼキュータにマウントされる追加のディスクストレージは 50 GiB に設定されます。

N/A

Spark のリソース仕様

重要

予約済みリソースまたは弾性リソースを使用して Spark ジョブを実行できます。ジョブリソースグループのオンデマンドの弾性リソースを使用して Spark ジョブを実行する場合、システムは Spark のリソース仕様と CPU とメモリの比率に基づいて、次の数式を使用して使用される AnalyticDB 計算ユニット (ACU) の数を計算します:

  • CPU とメモリの比率が 1:2:使用 ACU 数 = CPU コア数 × 0.8。

  • CPU とメモリの比率が 1:4:使用 ACU 数 = CPU コア数 × 1。

  • CPU とメモリの比率が 1:8:使用 ACU 数 = CPU コア数 × 1.5。

オンデマンドの弾性リソースの価格については、「Data Lakehouse Edition の課金」をご参照ください。

表 1. Spark のリソース仕様

タイプ

仕様

使用 ACU

CPU コア

メモリ (GB)

ディスクストレージ1 (GB)

c.small

1

2

20

0.8

small

1

4

20

1

m.small

1

8

20

1.5

c.medium

2

4

20

1.6

medium

2

8

20

2

m.medium

2

16

20

3

c.large

4

8

20

3.2

large

4

16

20

4

m.large

4

32

20

6

c.xlarge

8

16

20

6.4

xlarge

8

32

20

8

m.xlarge

8

64

20

12

c.2xlarge

16

32

20

12.8

2xlarge

16

64

20

16

m.2xlarge

16

128

20

24

m.4xlarge

32

256

20

48

m.8xlarge

64

512

20

96

説明

1ディスクストレージ:システムがディスクストレージの約 1% を占有することが想定されます。実際に利用可能なディスクストレージは 20 GB 未満になる場合があります。

Spark ジョブに 32 個の Executor を割り当て、各 Executor の仕様を medium (2 コア 8 GB)、各 Driver の仕様を small (1 コア 4 GB) とします。この場合、ジョブ全体で合計 65 ACU のコンピューティングリソースを割り当てることができます。

{
   "spark.driver.resourceSpec":"small",
   "spark.executor.resourceSpec":"medium",
   "spark.executor.instances":"32",
   "spark.adb.executorDiskSize":"100Gi"
}

Spark ジョブの優先度指定

パラメーター

必須

デフォルト値

説明

spark.adb.priority

いいえ

NORMAL

Spark ジョブの優先度。リソースが不足して送信されたすべての Spark ジョブを実行できない場合、優先度の高いキュー内のジョブが最初に実行されます。有効値:

  • HIGH:高優先度。

  • NORMAL:通常優先度。

  • LOW:低優先度。

  • LOWEST:最低優先度。

重要

ストリーミング Spark ジョブ (長時間実行されるストリームジョブ) には、このパラメーターを HIGH に設定することを推奨します。

メタデータへのアクセス

パラメーター

必須

デフォルト値

説明

spark.sql.catalogImplementation

いいえ

  • Spark SQL ジョブ:hive

  • 非 Spark SQL ジョブ:in-memory

アクセスするメタデータのタイプ。有効値:

  • hive:Apache Spark の組み込み Hive メタストア内のメタデータ。

  • in-memory:一時ディレクトリ内のメタデータ。

spark.sql.hive.metastore.version

いいえ

  • Spark SQL ジョブ:adb

  • 非 Spark SQL ジョブ:<hive_version>

メタストアサービスのバージョン。有効値:

  • adbAnalyticDB for MySQL のメタデータに接続します。

  • <hive_version>:Hive メタストアのバージョン。

説明
  • Apache Spark でサポートされている Hive のバージョンについては、「Spark Configuration」をご参照ください。

  • セルフマネージドの Hive メタストアにアクセスするには、デフォルトの構成を標準の Apache Spark 構成に置き換えることができます。詳細については、「Spark Configuration」をご参照ください。

  • AnalyticDB for MySQL のメタデータにアクセスするには、次の設定を構成します:

    spark.sql.hive.metastore.version=adb;
  • Apache Spark の組み込み Hive メタストアのメタデータにアクセスするには、次の設定を構成します:

    spark.sql.catalogImplementation=hive;
    spark.sql.hive.metastore.version=2.1.3;
  • 一時ディレクトリのメタデータにアクセスするには、次の設定を構成します:

    spark.sql.catalogImplementation=in-memory;

Spark UI の構成

パラメーター

必須

デフォルト値

説明

spark.app.log.rootPath

いいえ

oss://<aliyun-oa-adb-spark-Alibaba Cloud アカウント ID-oss-Zone ID>/<クラスター ID>/<Spark アプリケーション ID>

AnalyticDB for MySQL の Spark ジョブログと Linux オペレーティングシステムの出力データが格納されるディレクトリ。

デフォルトでは、Spark アプリケーション ID という名前のフォルダに次の内容が含まれます:

  • Spark UI のレンダリングに使用される Spark イベントログを格納する Spark アプリケーション ID-000X という名前のファイル。

  • 対応するノードのログを格納する driver および数字という名前のフォルダ。

  • Linux オペレーティングシステムの出力データを格納する stdout および stderr という名前のフォルダ。

spark.adb.event.logUploadDuration

いいえ

false

イベントログのアップロード期間を記録するかどうかを指定します。

spark.adb.buffer.maxNumEvents

いいえ

1000

ドライバーによってキャッシュされるイベントの最大数。

spark.adb.payload.maxNumEvents

いいえ

10000

一度に Object Storage Service (OSS) にアップロードできるイベントの最大数。

spark.adb.event.pollingIntervalSecs

いいえ

0.5

OSS へのイベントの 2 回のアップロードの間隔。単位:秒。たとえば、値 0.5 は、イベントが 0.5 秒ごとにアップロードされることを示します。

spark.adb.event.maxPollingIntervalSecs

いいえ

60

OSS へのイベントアップロードが失敗した場合の最大リトライ間隔。単位:秒。失敗したアップロードとアップロードリトライの間隔は、spark.adb.event.pollingIntervalSecs から spark.adb.event.maxPollingIntervalSecs の値の範囲内である必要があります。

spark.adb.event.maxWaitOnEndSecs

いいえ

10

OSS へのイベントアップロードの最大待機時間。単位:秒。最大待機時間は、アップロードの開始から完了までの間隔です。アップロードが最大待機時間内に完了しない場合、アップロードはリトライされます。

spark.adb.event.waitForPendingPayloadsSleepIntervalSecs

いいえ

1

spark.adb.event.maxWaitOnEndSecs の値内に完了しないアップロードをリトライするために必要な待機時間。単位:秒。

spark.adb.eventLog.rolling.maxFileSize

いいえ

209715200

OSS 内のイベントログの最大ファイルサイズ。単位:バイト。イベントログは、Eventlog.0 や Eventlog.1 などの複数のファイルの形式で OSS に保存されます。ファイルサイズを指定できます。

RAM ユーザーへの権限付与

パラメーター

必須

デフォルト値

説明

spark.adb.roleArn

いいえ

N/A

Spark アプリケーションを送信する権限を RAM ユーザーに付与するために、RAM コンソールで RAM ユーザーにアタッチする Resource Access Management (RAM) ロールの Alibaba Cloud リソース名 (ARN)。詳細については、「RAM ロールの概要」をご参照ください。RAM ユーザーとして Spark アプリケーションを送信する場合は、このパラメーターを指定する必要があります。Alibaba Cloud アカウントで Spark アプリケーションを送信する場合は、このパラメーターを指定する必要はありません。

説明

RAM コンソールで RAM ユーザーに権限を付与している場合は、このパラメーターを指定する必要はありません。詳細については、「アカウントの権限付与」をご参照ください。

組み込みデータソースコネクタの有効化

パラメーター

必須

デフォルト値

説明

spark.adb.connectors

いいえ

N/A

有効にする AnalyticDB for MySQL Spark の組み込みコネクタの名前。複数の名前はカンマ (,) で区切ります。有効値:oss、hudi、delta、adb、odps、external_hive、jindo、および default。

spark.hadoop.io.compression.codec.snappy.native

いいえ

false

Snappy ファイルが標準の Snappy フォーマットであるかどうかを指定します。デフォルトでは、Hadoop は Hadoop で編集された Snappy ファイルを認識します。このパラメーターを true に設定すると、標準の Snappy ライブラリが展開に使用されます。このパラメーターを false に設定すると、Hadoop のデフォルトの Snappy ライブラリが展開に使用されます。

VPC アクセスとデータソースアクセスの有効化

パラメーター

必須

デフォルト値

説明

spark.adb.eni.enabled

いいえ

false

Elastic Network Interface (ENI) を有効にするかどうかを指定します。

外部テーブルを使用して他の外部データソースにアクセスする場合は、ENI を有効にする必要があります。有効値:

  • true:有効化

  • false:無効化

spark.adb.eni.vswitchId

いいえ

N/A

ENI に関連付けられている vSwitch の ID。

Virtual Private Cloud (VPC) 経由で Elastic Compute Service (ECS) インスタンスから AnalyticDB for MySQL に接続する場合は、VPC の vSwitch ID を指定する必要があります。

説明

VPC アクセスを有効にしている場合は、spark.adb.eni.enabled パラメーターを true に設定する必要があります。

spark.adb.eni.securityGroupId

いいえ

N/A

ENI に関連付けられているセキュリティグループの ID。

VPC 経由で ECS インスタンスから AnalyticDB for MySQL に接続する場合は、セキュリティグループ ID を指定する必要があります。

説明

VPC アクセスを有効にしている場合は、spark.adb.eni.enabled パラメーターを true に設定する必要があります。

spark.adb.eni.extraHosts

いいえ

N/A

IP アドレスとホスト名の間のマッピング。このパラメーターにより、Spark はデータソースのホスト名を解決できます。セルフマネージドの Hive データソースにアクセスする場合は、このパラメーターを指定する必要があります。

説明
  • IP アドレスとホスト名はスペースで区切ります。複数の IP アドレスとホスト名のグループはカンマ (,) で区切ります。例:ip0 master0,ip1 master1

  • データソースアクセスを有効にしている場合は、spark.adb.eni.enabled パラメーターを true に設定する必要があります。

spark.adb.eni.adbHostAlias.enabled

いいえ

false

AnalyticDB for MySQL が必要とするドメイン名の名前解決情報をドメイン名と IP アドレスのマッピングテーブルに自動的に書き込むかどうかを指定します。有効値:

  • true:有効化。

  • false:無効化。

ENI を使用して EMR Hive からデータを読み書きする場合は、このパラメーターを true に設定する必要があります。

アプリケーションリトライの構成

パラメーター

必須

デフォルト値

説明

spark.adb.maxAttempts

いいえ

1

アプリケーションの実行が許可される最大試行回数。デフォルト値は 1 で、リトライは許可されないことを指定します。

Spark アプリケーションにこのパラメーターを 3 に設定すると、システムはスライドウィンドウ内で最大 3 回アプリケーションを実行しようとします。

spark.adb.attemptFailuresValidityInterval

いいえ

Integer.MAX

システムがアプリケーションの再実行を試みるスライドウィンドウの期間。単位:秒。

たとえば、Spark アプリケーションにこのパラメーターを 6000 に設定すると、システムは失敗した実行後、最後の 6,000 秒以内の試行回数をカウントします。試行回数が maxAttempts パラメーターの値より少ない場合、システムはアプリケーションの実行をリトライします。

Spark ジョブのランタイム環境の指定

次の表は、仮想環境テクノロジーを使用して Python 環境をパッケージ化し、Spark ジョブを送信する際に必要な構成パラメーターについて説明します。

パラメーター

必須

デフォルト値

説明

spark.pyspark.python

いいえ

N/A

オンプレミスデバイス上の Python インタープリターのパス。

Spark バージョンの指定

パラメーター

必須

デフォルト値

説明

spark.adb.version

いいえ

3.2

Spark バージョン。有効値:

  • 2.4

  • 3.2

  • 3.3

  • 3.5

  • 4.0

高性能なベクトル化実行エンジン

パラメーター

必須

デフォルト値

説明

spark.adb.native.enabled

いいえ

false

ジョブを実行するために高性能なベクトル化実行エンジンを有効にするかどうかを指定します。このエンジンは AnalyticDB for MySQL Spark に組み込まれており、オープンソースの Spark と完全に互換性があります。既存のコードを変更することなく有効にできます。

レイクストレージアクセラレーション

パラメーター

必須

デフォルト値

説明

spark.adb.lakecache.enabled

いいえ

false

LakeCache (レイクストレージアクセラレーション) を有効にするかどうかを指定します。

AnalyticDB for MySQL でサポートされていない構成パラメーター

AnalyticDB for MySQL Spark は、Apache Spark の次の構成パラメーターをサポートしていません。これらのパラメーターは AnalyticDB for MySQL Spark では効果がありません。

無効なオプション (これらのオプションは無視されます):
  --deploy-mode
  --master
  --packages, please use `--jars` instead
  --exclude-packages
  --proxy-user
  --repositories
  --keytab
  --principal
  --queue
  --total-executor-cores
  --driver-library-path
  --driver-class-path
  --supervise
  -S,--silent
  -i <filename>