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

Lindorm:ジョブのパラメーターを設定する

最終更新日:Nov 09, 2025

このトピックでは、Lindorm 分散処理システム (LDPS) の Spark ジョブのパラメーターを設定する方法について説明します。

Spark ジョブのパラメーターを設定する

LDPS では、リソース、実行、モニタリングに関連するパラメーターなど、Spark ジョブの共通パラメーターを設定できます。

制限付きパラメーター

spark.master および spark.submit.deployMode パラメーターはシステムパラメーターであり、カスタマイズできません。

パラメーター

説明

spark.master

クラスター管理システムのエンドポイント。

spark.submit.deployMode

Spark ドライバーがデプロイされるモード。

リソースパラメーター

LDPS は、エラスティックリソースプールに基づいてサービスを提供します。デフォルトでは、設定できるリソースの最大数に制限はありません。これらのリソースは、従量課金制で課金されます。設定できるリソースの最大数を変更する方法の詳細については、「コンピューティングエンジンリソースのアップグレード/ダウングレード」をご参照ください。

JDBC、JAR、Python ジョブなど、LDPS に送信する各ジョブのリソースパラメーターを設定できます。リソースパラメーターには、仕様パラメーターと容量パラメーターが含まれます。

仕様パラメーター

基本仕様パラメーター

パラメーター

説明

デフォルト値

spark.driver.memory

ドライバーのヒープメモリのサイズ。単位: MB。

8192M

spark.driver.memoryOverhead

ドライバーのオフヒープメモリのサイズ。単位: MB。

8192M

spark.kubernetes.driver.disk.size

ドライバーのローカルディスクのサイズ。単位: GB。

50

spark.executor.cores

単一のエグゼキューターノードの CPU コア数。

4

spark.executor.memory

単一のエグゼキューターのヒープメモリのサイズ。単位: MB。

8192M

spark.executor.memoryOverhead

単一のエグゼキューターのオフヒープメモリのサイズ。単位: MB。

8192M

spark.kubernetes.executor.disk.size

単一のエグゼキューターのローカルディスクのサイズ。単位: GB。

50

高度な仕様パラメーター

パラメーター

説明

デフォルト値

spark.{driver/executor}.resourceTag

リソース仕様セット。有効な値: xlarge, 2xlarge, 4xlarge, 8xlarge, and 16xlarge。指定された仕様セットで定義されたリソースは、ジョブに自動的に設定されます。

  • xlarge:

    spark.{driver/executor}.cores=4

    spark.{driver/executor}.memory=8192m

    spark.{driver/executor}.memoryOverhead=8192m

    spark.kubernetes.{driver/executor}.disk.size=50

  • 2xlarge:

    spark.{driver/executor}.cores=8

    spark.{driver/executor}.memory=16384m

    spark.{driver/executor}.memoryOverhead=16384m

    spark.kubernetes.{driver/executor}.disk.size=100

  • 4xlarge:

    spark.{driver/executor}.cores=16

    spark.{driver/executor}.memory=32768m

    spark.{driver/executor}.memoryOverhead=32768m

    spark.kubernetes.{driver/executor}.disk.size=200

  • 8xlarge:

    spark.{driver/executor}.cores=32

    spark.{driver/executor}.memory=65536m

    spark.{driver/executor}.memoryOverhead=65536m

    spark.kubernetes.{driver/executor}.disk.size=400

  • 16xlarge:

    spark.{driver/executor}.cores=64

    spark.{driver/executor}.memory=131072m

    spark.{driver/executor}.memoryOverhead=131072m

    spark.kubernetes.{driver/executor}.disk.size=400

なし

spark.kubernetes.{driver/executor}.ecsModelPreference

計算ノードのモデル。このパラメーターは、spark.{driver/executor}.resourceTag パラメーターと一緒に設定して、異なるモデルを順番に設定できます。最大 4 つのモデルを設定できます。例: spark.kubernetes.driver.ecsModelPreference=hfg6,g6

LDPS は、モデルが指定された順序に基づいてモデルを申請します。指定されたすべてのモデルが在庫切れの場合、LDPS は指定されたリソース仕様に基づいて利用可能なモデルをランダムに申請します。

なし

spark.kubernetes.{driver/executor}.annotation.k8s.aliyun.com/eci-use-specs

GPU の仕様とモデル。詳細については、「ECS インスタンスタイプを指定して Pod を作成する」をご参照ください。

ecs.gn7i-c8g1.2xlarge

spark.{driver/executor}.resource.gpu.vendor

GPU の製造元。

説明

このパラメーターの値は、指定された GPU 仕様に対応している必要があります。

nvidia.com

spark.{driver/executor}.resource.gpu.amount

GPU の数。

説明

このパラメーターを 1 に設定します。

1

spark.{driver/executor}.resource.gpu.discoveryScript

スクリプトファイルが配置されているパス。

説明

このパラメーターで指定されたスクリプトファイルは、Spark ドライバーまたはエグゼキューターを起動するときに GPU リソースをクエリして関連付けるために使用されます。このパラメーターを /opt/spark/examples/src/main/scripts/getGpusResources.sh に設定します。

/opt/spark/examples/src/main/scripts/getGpusResources.sh

spark.kubernetes.executor.annotation.k8s.aliyun.com/eci-use-specs

エグゼキューターインスタンスの仕様。十分な容量を確保するために、エグゼキューターのディスクを拡張します。

次の仕様がサポートされています:

  • ecs.d1ne.2xlarge: 8 コア、32 GB メモリ。

  • ecs.d1ne.4xlarge: 16 コア、64 GB メモリ。

  • ecs.d1ne.6xlarge: 24 コア、96 GB メモリ。

  • ecs.d1ne.8xlarge: 32 コア、128 GB メモリ。

  • ecs.d1ne.14xlarge: 56 コア、224 GB メモリ。

    説明
    • 要件に基づいてエグゼキューターインスタンスの仕様を選択してください。

    • このパラメーターと一緒に次の 2 つのパラメーターを設定する必要があります:

      • spark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.mount.path=/var

      • spark.kubernetes.executor.volumes.emptyDir.spark-local-dir-1.options.medium=LocalRaid0

    • 場合によっては、指定された仕様のエグゼキューターが利用できないことがあります。設定中にエラーが発生した場合は、Lindorm のテクニカルサポート (DingTalk ID: s0s3eg3) にお問い合わせください。

なし

容量パラメーター

パラメーター

説明

デフォルト値

spark.executor.instances

ジョブに申請されるエグゼキューターの数。

2

spark.dynamicAllocation.enabled

動的リソース割り当てを有効にするかどうかを指定します。有効な値:

  • true: 有効。

  • false: 動的リソース割り当てを無効にします。

動的リソース割り当てが有効になると、LDPS はジョブのリアルタイムワークロードに基づいてエグゼキューターを申請および解放します。

true

spark.dynamicAllocation.minExecutors

動的リソース割り当てが有効な場合のエグゼキューターの最小数。

0

spark.dynamicAllocation.maxExecutors

動的リソース割り当てが有効な場合のエグゼキューターの最大数。

説明

エグゼキューターの最大数は、指定された同時タスクの数と同じです。

Infinity

spark.dynamicAllocation.executorIdleTimeout

動的リソース割り当てが有効な場合のエグゼキューターの最大アイドル期間。エグゼキューターが指定された値より長い時間アイドル状態である場合、エグゼキューターは解放されます。単位: 秒。

600s

実行パラメーター

パラメーター

説明

デフォルト値

spark.speculation

投機的実行を有効にするかどうかを指定します。有効な値:

  • true: 投機的実行を有効にします。

  • false: 無効。

タスクの実行に時間がかかりすぎる場合、ドライバーはロングテールを避けるためにタスクを再送信します。

説明

ロングテールは、一部のタスクの実行期間が他のタスクよりも著しく長いことを示します。

true

spark.task.maxFailures

タスクに許容される最大失敗回数。タスクが失敗した回数がこの値を超えると、そのタスクが属するジョブは失敗します。

4

spark.dfsLog.executor.enabled

エグゼキューターのログを LindormDFS に保存するかどうかを指定します。有効な値:

  • true: 保存します。

  • false: 保存しません。

LDPS のジョブが大規模な場合、このパラメーターを false に設定して、ログストリームによる過剰な DFS 負荷を防ぐことができます。

true

spark.jars

タスクを送信するときに必要な JAR パッケージのパス。このパラメーターの値は、OSS または HDFS のパスにすることができます。

このパラメーターを OSS パスに設定する場合は、次のパラメーターも設定する必要があります:

  • spark.hadoop.fs.oss.endpoint

  • spark.hadoop.fs.oss.accessKeyId

  • spark.hadoop.fs.oss.accessKeySecret

  • spark.hadoop.fs.oss.impl

重要

JDBC を使用して LDFS に接続する場合、このパラメーターは HDFS パスにのみ設定できます。

なし

spark.hadoop.fs.oss.endpoint

OSS のエンドポイント。エンドポイントの取得方法の詳細については、「リージョンとエンドポイント」をご参照ください。

なし

spark.hadoop.fs.oss.accessKeyId

Alibaba Cloud アカウントまたは Alibaba Cloud アカウントの RAM ユーザーの AccessKey ID。

AccessKey ID と AccessKey Secret の取得方法の詳細については、「AccessKey ペアの取得」をご参照ください。

なし

spark.hadoop.fs.oss.accessKeySecret

Alibaba Cloud アカウントまたは Alibaba Cloud アカウントの RAM ユーザーの AccessKey Secret。

AccessKey ID と AccessKey Secret の取得方法の詳細については、「AccessKey ペアの取得」をご参照ください。

なし

spark.hadoop.fs.oss.impl

OSS へのアクセスに使用されるクラス。

このパラメーターを org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem に設定します。

なし

spark.default.parallelism

データソースの同時実行性とシャッフルの同時実行性を含む、非 SQL タスクのデフォルトの同時実行性。

なし

spark.sql.shuffle.partitions

SQL タスクのデフォルトのシャッフル同時実行性。

200

モニタリングパラメーター

LDFS では、カスタマイズされたパラメーターを使用してインスタンスのステータスをモニターできます。これらのパラメーターを設定して、ジョブログにドライバーとエグゼキューターのステータスを記録できます。

パラメーター

説明

デフォルト値

spark.monitor.cmd

ジョブモニタリング用のコマンドグループ。複数のコマンドはセミコロン (;) で区切ります。このパラメーターで指定されたコマンドは、一定の間隔で順番に実行されます。コマンドの実行結果はジョブログに記録されます。

モニタリングコマンドのサンプル:

  • システムステータスのモニター: top -b -n 1, vmstat。

  • メモリステータスのモニター: free -m。

  • I/O ステータスのモニター: iostat -d -x -c -k。

  • ディスクステータスのモニター: df -h。

  • ネットワークステータスのモニター: sar -n DEV 1 1, netstat。

ステートメントのサンプル:

  • 単一のモニタリングコマンドを設定する:

    "spark.monitor.cmd": "top -b -n 1"
  • 複数のモニタリングコマンドを設定する:

"spark.monitor.cmd": "top -b -n 1; vmstat; free -m; iostat -d -x -c -k; df -h; sar -n DEV 1 1; netstat"
重要

Beeline または JDBC を使用してジョブを送信する場合、このパラメーターは設定できません。

なし

spark.monitor.interval

グループ内のコマンドが実行される間隔。単位: 秒。

spark.monitor.cmd パラメーターで指定されたコマンドは、このパラメーターで指定された間隔で実行されます。

60

spark.monitor.timeout

モニタリングコマンドのタイムアウト期間。単位: 秒。

spark.monitor.cmd パラメーターで指定されたコマンドグループ内のモニタリングコマンドの実行時間が指定されたタイムアウト期間を超えた場合、そのコマンドはスキップされ、後続のコマンドが実行されます。これにより、モニタリング情報がブロックされることなくログに記録されます。

2

ログパラメーター

パラメーター

説明

デフォルト値

spark.log.level

ジョブログの出力レベルを設定します。

利用可能なレベルは次のとおりです:

  • ALL: 最も詳細なデバッグ情報を含む、すべてのレベルのログを出力します。

  • TRACE: DEBUG よりも詳細なログレベルで、プログラム実行に関する最も詳細な情報を記録します。

  • DEBUG: プログラム実行中の詳細なステータス情報を含む、デバッグレベルのログを出力します。

  • INFO: 通常のプログラム実行中の主要なイベントを記録する、一般的な情報ログを出力します。

  • ERROR: プログラム実行中に発生したエラーを記録する、エラーレベルのログを出力します。

  • WARN: プログラムの実行に影響を与えない潜在的な問題を示す、警告レベルのログを出力します。

  • FATAL: 通常、プログラムが実行を継続できないことを示す、重大なエラーレベルのログを出力します。

  • OFF: すべてのログ出力をオフにし、ログ情報は記録されません。

INFO

オープンソース Spark に関連するパラメーター

オープンソース Spark に関連するパラメーターの詳細については、「Spark 設定」をご参照ください。

設定方法

LDPS にジョブを送信する際に、カスタマイズされたリソースパラメーターを設定できます。設定方法は、ジョブの送信方法によって異なります。

Beeline

Beeline コマンドラインツールが配置されている Spark パッケージ内の conf/beeline.conf 設定ファイルを変更することで、設定方法を指定できます。詳細については、「はじめに」をご参照ください。

次の例は、設定ファイルの内容を示しています:

# Lindorm コンピューティングエンジンのエンドポイント、例: jdbc:hive2://123.456.XX.XX:10009/;?token=bb8a15-jaksdj-sdfjsd-ak****
endpoint=jdbc:hive2://ld-bp13ez23egd123****-proxy-ldps-pub.lindorm.aliyuncs.com:10009/;?token=jfjwi2453-fe39-cmkfe-afc9-01eek2j5****

# 接続用のユーザー名、デフォルトは root。
user=root

# 接続用のパスワード、デフォルトは root。
password=root

# 異なるセッション間で Spark リソースを共有するかどうか、デフォルトは true。
shareResource=false

# 通常の Spark 設定
spark.dynamicAllocation.enabled=true
spark.dynamicAllocation.minExecutors=3

JDBC

JDBC 接続文字列を使用してパラメーターを設定できます。JDBC URL の詳細については、「アプリケーション開発での JDBC の使用」をご参照ください。

たとえば、JDBC 接続文字列を使用して、Spark シャッフルパーティションのデフォルト数を 2 に、エグゼキューターが使用するメモリ空間を 8 GB に設定できます。

jdbc:hive2://${host}:${port}/;?token=${token};spark.executor.memory=8g;spark.sql.shuffle.partitions=2

JAR

  • Lindorm コンソールで Java ジョブを送信する際に、ジョブコンテンツテンプレートに基づいて Java ジョブのパラメーターを設定できます。詳細については、「Lindorm コンソールでのジョブの管理」をご参照ください。

  • DMS を使用して Java ジョブを送信する場合、ジョブノードページの [ジョブ設定] セクションでジョブのカスタマイズされたパラメーターを設定できます。詳細については、「DMS を使用したジョブの管理」をご参照ください。

Python

  • Lindorm コンソールで Python ジョブを送信する際に、ジョブコンテンツテンプレートに基づいて Python ジョブのパラメーターを設定できます。詳細については、「Lindorm コンソールでのジョブの管理」をご参照ください。

  • DMS を使用して Python ジョブを送信する場合、ジョブノードページの [ジョブ設定] セクションでジョブのカスタマイズされたパラメーターを設定できます。詳細については、「DMS を使用したジョブの管理」をご参照ください。