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

MaxCompute:一般的な構成

最終更新日:Mar 17, 2026

本トピックでは、さまざまなバージョンの Spark クライアントに共通するパラメーター構成について説明します。

MaxCompute アカウントのパラメーター構成

パラメーター

説明

spark.hadoop.odps.project.name

MaxCompute プロジェクト名です。

DataWorks を通じてジョブを送信する場合、デフォルト値を使用するため、構成は不要です。

spark.hadoop.odps.access.id

ターゲットの MaxCompute プロジェクトへのアクセス権限を持つ AccessKey ID です。AccessKey ID は AccessKey 管理ページで取得できます。

DataWorks を通じてジョブを送信する場合、デフォルト値を使用するため、構成は不要です。

spark.hadoop.odps.access.key

AccessKey ID に対応する AccessKey Secret です。

DataWorks を通じてジョブを送信する場合、デフォルト値を使用するため、構成は不要です。

spark.hadoop.odps.access.security.token

MaxCompute プロジェクトの STS トークンです。

DataWorks を通じてジョブを送信する場合、デフォルト値を使用するため、構成は不要です。

spark.hadoop.odps.end.point

  • ご利用の MaxCompute プロジェクトが所在するリージョン専用のパブリックエンドポイントまたはVPC エンドポイントです。パブリックエンドポイントと VPC エンドポイントのどちらを選択するかは、ご利用の Spark クライアントのネットワーク環境によって決まります。DataWorks を使用してジョブを送信する場合、デフォルト値を使用できるため、構成は不要です。

  • 例えば、中国 (杭州) リージョンの VPC エンドポイントは https://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api です。

spark.hadoop.odps.runtime.end.point

MaxCompute が所在するリージョンのクラウド製品相互接続エンドポイントです。

例えば、中国 (杭州) リージョンのサービス相互接続エンドポイントは https://service.cn-hangzhou-intranet.maxcompute.aliyun-inc.com/api です。

MaxCompute Spark のジョブ送信、バージョン、ログの構成

パラメーター

説明

spark.hadoop.odps.kube.mode

  • デフォルト値:false

  • ジョブを Kubernetes (k8s) モードで送信するかどうかを指定します。MaxCompute Spark は kube モードに完全にアップグレードされました。レガシーな cupid モードは廃止される予定です。

  • 新規ユーザーはこの構成を有効にする必要があります。

spark.hadoop.odps.cupid.data.proxy.enable

  • デフォルト値:false

  • データの読み取り/書き込み操作に MaxStorage を使用するかどうかを指定します。

  • 無効にすると、kube モードが機能しない場合があります。kube モードを使用する場合は、このオプションを有効にしてください。

spark.hadoop.odps.cupid.fuxi.shuffle.enable

  • デフォルト値:false

  • シャッフル中に Fuxi Shuffle Service を使用して、ローカルディスクのオーバーフローを防ぐかどうかを指定します。

  • 大規模なジョブやディスク領域が満杯の場合に、このオプションを有効にしてください。

spark.hadoop.odps.spark.version

  • Spark ジョブの送信に使用する Spark のバージョンです。サポートされているバージョンについては、Spark リリースリストをご参照ください。例:spark-3.1.1-odps0.35.0

  • Spark クライアントを通じてジョブを送信する場合、spark.hadoop.odps.spark.libs.public.enabletrue に設定する必要もあります。

spark.hadoop.odps.spark.libs.public.enable

  • デフォルト値:falsetrue に設定すると、Spark ライブラリがアップロードされる代わりにサーバーからプルされるため、起動が高速化されます。

  • この設定は、spark.hadoop.odps.spark.version も構成されている場合にのみ有効です。

spark.eventLog.enabled

  • デフォルト値:false。イベントロギングを有効にして、Spark UI の履歴を表示します。

  • 問題のトラブルシューティングを行うには、このオプションを有効にしてください。kube モードでは、spark.eventLog.dir も構成する必要があります。

spark.eventLog.dir

  • デフォルト値:バージョンに応じて /tmp/spark-events/ または /workdir/eventlog

  • イベントログの保存場所を指定します。値が正しくないと、イベントログのアップロードや履歴の表示ができなくなります。

  • kube モードでは、これを手動で /workdir/eventlog/ に設定する必要があります。

Spark のリソース割り当て構成

パラメーター

説明

spark.executor.instances

デフォルト値:1。Spark アプリケーションがクラスター内で起動するエグゼキュータプロセスの総数です。

spark.executor.cores

デフォルト値:1。各エグゼキュータプロセスで利用可能な CPU コアの数です。

spark.executor.memory

デフォルト値:2 g。エグゼキュータプロセスあたりの総メモリで、ヒープメモリとオフヒープメモリを含みます。

spark.driver.cores

デフォルト値:1。ドライバープロセスが使用する CPU コアの数です。

spark.driver.memory

デフォルト値:2 g。ドライバープロセスの総メモリです。

spark.executor.memoryOverhead

  • デフォルト値:コミュニティドキュメントをご参照ください。オフヒープメモリの使用量が多い場合は、この値を増やしてメモリ制限超過による強制終了を回避してください。

  • エグゼキュータあたりの総メモリは spark.executor.memory + spark.executor.memoryOverhead です。

spark.driver.memoryOverhead

  • デフォルト値:コミュニティドキュメントをご参照ください。オフヒープメモリの使用量が多い場合は、この値を増やしてメモリ制限超過による強制終了を回避してください。

  • ドライバーの総メモリは spark.driver.memory + spark.driver.memoryOverhead です。

spark.hadoop.odps.cupid.disk.driver.device_size

  • デフォルト値:20 g。ローカルディスクのサイズです。No space left on device が発生した場合は、この値を増やしてください。サポートされる最大サイズは 100 g です。

  • このパラメーターは spark-defaults.conf ファイルまたは DataWorks の設定項目で構成する必要があります。コード内で構成しないでください。

MaxCompute の読み取り/書き込み構成

重要

spark.sql.catalog.odps で始まる以下の構成は、Spark 3.x バージョンにのみ適用されます。

パラメーター

説明

spark.sql.catalog.odps.tableReadProvider

  • デフォルト値:v1

  • ローカルモードを使用する場合は tunnel に設定します。

spark.sql.catalog.odps.tableWriteProvider

  • デフォルト値:v1

  • ローカルモードを使用する場合は tunnel に設定します。

spark.sql.catalog.odps.metaCacheSize

  • デフォルト値:100

  • メタデータキャッシュエントリの最大数で、プロジェクト、スキーマ、テーブルのメタデータを含みます。これにより、読み取り/書き込み操作が高速化されます。この値は変更しないでください。

spark.sql.catalog.odps.metaCacheExpireSeconds

  • デフォルト値:30

  • 単位:秒。メタデータキャッシングの生存時間 (TTL) です。これにより、読み取り/書き込み操作が高速化されます。テーブルへのアクセスが頻繁で、変更がほとんどない場合を除き、この値を増やさないでください。そうしないと、ダーティデータが読み取られる可能性があります。

spark.sql.catalog.odps.viewCacheExpireSeconds

  • デフォルト値:3600

  • 単位:秒。ビューのメタデータキャッシングの TTL です。この値は変更しないでください。

spark.sql.catalog.odps.enableVectorizedReader

  • デフォルト値:true

  • ベクトル化読み取りを有効にします。この値は変更しないでください。

spark.sql.catalog.odps.enableVectorizedWriter

  • デフォルト値:true

  • ベクトル化書き込みを有効にします。この値は変更しないでください。

spark.sql.catalog.odps.columnarReaderBatchSize

  • デフォルト値:4096

  • データ読み取り時のバッチあたりの行数です。

spark.sql.catalog.odps.columnarWriterBatchSize

  • デフォルト値:4096

  • データ書き込み時のバッチあたりの行数です。

spark.sql.catalog.odps.splitParallelism

  • デフォルト値:-1

  • 基盤となるストレージを分割するための並列度を指定します。ゼロより大きい場合にのみ有効です。

  • このオプションは安易に設定しないでください。デフォルトでは、splitByRowOffset または splitByByteSize が使用され、より適切なスプリットサイズが計算されます。

spark.sql.catalog.odps.splitSizeInMB

  • デフォルト値:256

  • 単位:MB。各スプリットのサイズです。この値を小さくすると読み取りの同時実行数が増加し、大きくすると同時実行数が減少します。

spark.sql.catalog.odps.enableExternalProject

  • デフォルト値:false

  • 外部プロジェクトのサポートを有効にします。

spark.sql.catalog.odps.enableExternalTable

  • デフォルト値:false

  • 外部テーブルのサポートを有効にします。

spark.sql.catalog.odps.tableCompressionCodec

  • デフォルト値:none

  • テーブルの圧縮アルゴリズムです。デフォルトは圧縮なしです。サポートされているアルゴリズムは lz4_framezstd です。

spark.sql.catalog.odps.enableNamespaceSchema

  • デフォルト値:false

  • MaxCompute がスキーマレベルの構文スイッチをサポートするかどうか。

spark.sql.catalog.odps.defaultSchema

  • デフォルト値:default

  • デフォルトのスキーマ名です。この値は変更しないでください。

spark.sql.catalog.odps.writerChunkSize

  • デフォルト値:4194304

  • 書き込み時のチャンクサイズ (バイト単位) です。デフォルトは 4 MB です。

spark.sql.catalog.odps.writerMaxRetires

  • デフォルト値:10

  • 書き込み失敗後のリトライ回数です。

spark.sql.catalog.odps.writerRetrySleepIntervalMs

  • デフォルト値:10000

  • 書き込み失敗後のリトライ間隔 (ミリ秒単位) です。

spark.sql.catalog.odps.writerBlocks

  • デフォルト値:20000

  • 書き込みの最大ブロック数です。

spark.sql.catalog.odps.splitSessionParallelismEnable

  • デフォルト値:true

  • パーティションレベルでの並列データ読み取りを有効にします。

spark.sql.catalog.odps.splitSessionParallelism

  • デフォルト値:1

  • パーティションレベルでデータを読み取るための並列スレッド数です。

  • このパラメーターがパフォーマンスボトルネックになることはほとんどありません。プルーニング後のパーティション数が非常に多い場合にのみ調整してください。

spark.sql.catalog.odps.splitMaxFileNum

  • デフォルト値:0

  • スプリットあたりの最大ファイル数です。値が 0 の場合は制限なしを意味します。

  • 小さすぎるファイルが多すぎてスプリットの読み取り時間が長くなる場合は、この値を増やしてスプリットを増やし、リーダーを増やすことで読み取り速度を向上させます。

spark.sql.catalog.odps.splitMaxWaitTime

  • デフォルト値:15

  • 単位:分。スプリットの最大待機時間です。スプリット処理に時間がかかりすぎる場合は、この値を増やしてください。

spark.sql.catalog.odps.enableFilterPushDown

  • デフォルト値:false

  • Spark レイヤーでの述語プッシュダウンを有効にします。

spark.sql.catalog.odps.enableDeltaInsertDeduplicate

  • デフォルト値:false

  • パーティション内での重複排除を有効にします。上書き書き込みを行うトランザクションテーブルでは、デフォルトで重複排除が行われます。

spark.sql.catalog.odps.maxFieldSizeInMB

  • デフォルト値:-1

  • 単位:MB。VARCHAR/CHAR/STRING/BINARY フィールドの最大サイズです。-1 の値は 8 MB を意味します。

  • 有効な上限は、プロジェクトレベルのパラメーター odps.sql.cfile2.field.maxsize です。

spark.sql.catalog.odps.splitReaderNum

  • このパラメーターは Spark バージョン 3.4 以降にのみ適用されます。それ以前のバージョンでは効果がありません。

  • デフォルト値:1

  • 同時読み取りスレッドの数です。CPU がボトルネックになっていない場合にこの値を増やすと、読み取りが高速化されます。4 を超えないようにしてください。CPU がボトルネックになる直前の同時実行レベルを上限として使用してください。値を高くしすぎると、パフォーマンスが低下する可能性があります。

  • この設定は、asnycRead または batchReused が有効になっているかどうかに関係なく有効です。

spark.sql.catalog.odps.enableBatchReused

  • このパラメーターは Spark バージョン 3.4 以降にのみ適用されます。それ以前のバージョンでは効果がありません。

  • デフォルト値:true

  • バッチ再利用を有効にして、読み取り中のメモリ使用量を削減します。false に設定した場合は、非同期読み取りを有効にして、速度と引き換えにメモリを消費します。メモリ使用量を注意深く監視してください。

  • asyncRead が有効で readNum が 1 の場合、この設定は無視され、bufferRead をエミュレートするためにバッチは再利用されません。

spark.sql.catalog.odps.enableAsyncRead

  • このパラメーターは Spark バージョン 3.4 以降にのみ適用されます。それ以前のバージョンでは効果がありません。

  • デフォルト値:false

  • 非同期読み取りを有効にして、速度と引き換えにメモリを消費します。メモリ使用量を注意深く監視してください。

  • 読み取り効率を最大化するために、readerNum および batchReused と共に使用します。詳細については、asyncQueueSize の構成をご参照ください。

spark.sql.catalog.odps.asyncQueueSize

  • このパラメーターは Spark バージョン 3.4 以降にのみ適用されます。それ以前のバージョンでは効果がありません。

  • デフォルト値:8

  • 非同期読み取りのバッファーサイズです。メモリ使用量を注意深く監視してください。

  • 非同期読み取りが有効で batchReused=false の場合、この値は実際のキューサイズと等しくなります。queueSize >= readerNum を確認してください。そうしないと、ピーク効率が達成されない可能性があります。

  • 非同期読み取りを有効にし、batchReused=true を設定した場合、実際のキューサイズは readerNum になります。この場合、reuseBatch したい場合は、readNum=1 を設定しないでください。

spark.sql.catalog.odps.enhanceWriteCheck

  • このパラメーターは Spark バージョン 3.4 以降にのみ適用されます。それ以前のバージョンでは効果がありません。

  • デフォルト値:false

  • 書き込み中の正当性チェックを有効にします。

spark.sql.catalog.odps.dynamicPartitionLimit

  • このパラメーターは Spark バージョン 3.4 以降にのみ適用されます。それ以前のバージョンでは効果がありません。

  • デフォルト値:512

  • 書き込み中に許可される動的パーティションの最大数です。

spark.sql.catalog.odps.streamingWriteLimit

  • このパラメーターは Spark バージョン 3.4 以降にのみ適用されます。それ以前のバージョンでは効果がありません。

  • デフォルト値:60

  • 単位:秒。ストリーミング書き込み中に writeSession オブジェクトを作成する最小間隔です。デフォルトは 60 秒です。最小は 30 秒です。

MaxCompute のデータ相互運用性構成

spark.hadoop.odps.cupid.resources

このパラメーターは spark-defaults.conf ファイルまたは DataWorks の設定項目で構成する必要があります。このパラメーターをコード内で構成しないでください。

  • 説明

    ジョブの実行に必要なMaxCompute リソースを指定します。フォーマットは <projectname>.<resourcename> です。複数のリソースを指定するには、カンマで区切ります。

    指定されたリソースは、ドライバーとエグゼキュータの現在の作業ディレクトリ (/workdir) にダウンロードされます。ダウンロード完了後、デフォルトのファイル名は <projectname>.<resourcename> となります。圧縮されたリソースは自動的に展開されます。最上位ディレクトリの名前は、元のアーカイブの名前と一致します。例えば、リソース名が examples.tar.gz で名前が変更されていない場合、その内容は /workdir/examples.tar.gz/sub/... パスに展開されます。リソース名を examples に変更すると、その内容は /workdir/examples/sub/... パスに展開されます。正確なパスは、アーカイブの名前とその内部ディレクトリ構造によって異なります。

  • spark.hadoop.odps.cupid.resources = public.python-python-2.7-ucs4.zip,public.myjar.jar

  • リソースの名前変更:構成中にリソースの名前を変更するには、<projectname>.<resourcename>:<newresourcename> のフォーマットを使用します。

  • 名前変更の例spark.hadoop.odps.cupid.resources = public.myjar.jar:myjar.jar

その他の MaxCompute 構成

パラメーター

説明

spark.hadoop.odps.cupid.eni.enable & spark.hadoop.odps.cupid.eni.info

VPC 設定を構成します。詳細については、Alibaba Cloud VPC へのアクセスをご参照ください。

spark.hadoop.odps.cupid.trusted.services.access.list

デフォルト値なし。ご利用の Spark クラスターがネットワーク経由で Alibaba Cloud サービスのイントラネット相互通信サイトにアクセスできない場合は、このパラメーターを構成します。Alibaba Cloud OSS へのアクセスをご参照ください。

spark.hadoop.odps.cupid.smartnat.enable

  • デフォルト値:false

  • インターネットにアクセスするには、これを有効にします。

spark.hadoop.odps.cupid.internet.access.list

  • デフォルト値:None

  • インターネットアクセスを有効にした後、アクセスを許可するホワイトリストを構成します。インターネットへのアクセスをご参照ください。

spark.hadoop.odps.spark.alinux3.enabled

  • デフォルト値:false

  • クラスターモードで、alinux3 ベースイメージと Python 3.11 を有効にします。

spark.hadoop.odps.native.engine.enable

  • デフォルト値:false

  • クラスターモードで、Native Engine (Gluten) を使用して計算を高速化します。Native Engine はデフォルトで alinux3 ベースイメージを使用します。

spark.hadoop.odps.spark.metrics.enable

  • デフォルト値:false

  • Spark 内部のメトリック収集を有効にします。有効にすると、メトリックがより正確になります。