Umgebungsvariablen können auf drei verschiedenen Ebenen konfiguriert werden.

Definition der Service-Level-Konfiguration

Die auf Dienstebene definierten (sowohl unveränderlichen als auch veränderlichen) Umgebungsvariablen von Spark in der benutzerdefinierten Ressource Analytics Engine sind globale Konfigurationen, die sich auf alle Instanzen und Aufträge im Rahmen des Dienstes Analytics Engine auswirken.

apiVersion: ae.cpd.ibm.com/v1
kind: AnalyticsEngine
metadata:
  name: analyticsengine-sample
  namespace: cpd-instance
spec:
  blockStorageClass: managed-nfs-storage
  fileStorageClass: managed-nfs-storage
  sparkDefaults:
    immutableConfigs:
      spark.ui.requestheadersize: "12k"
    mutableConfigs:
      ae.kernel.idle_timeout: "1000"
    immutableEnvVars:
      SPARK_WORKER_CORES: "4"
      SPARK_EXECUTOR_INSTANCES: "2"
    mutableEnvVars:
      SPARK_EXECUTOR_MEMORY: "8g"
      SPARK_DRIVER_MEMORY: "4g"
  license:
    accept: true

Konfiguration auf Instanzebene definieren

Die auf Instanzebene definierten (veränderlichen und unveränderlichen) Spark-Umgebungsvariablen werden in der Instanztabellendatenbank gespeichert.

Verwenden Sie die folgende Konfiguration für unveränderliche Umgebungsvariablen

curl -k -X PUT/PATCH <cpd-route>/v4/analytics_engines/<instance_id>/immutable_env_vars -H "Authorization: Bearer $TOKEN" --data-raw '{
  "SPARK_WORKER_CORES": "4",
  "SPARK_EXECUTOR_INSTANCES": "2"
}'

Verwenden Sie die folgende Konfiguration für veränderbare Umgebungsvariablen

curl -k -X PUT/PATCH <cpd-route>/v4/analytics_engines/<instance_id>/default_env_vars -H "Authorization: Bearer $TOKEN" --data-raw '{
"SPARK_EXECUTOR_MEMORY": "10g",
"SPARK_DRIVER_MEMORY": "6g"
}'

Definition der Konfiguration auf Kernel-Ebene

Die auf Kernel-Ebene definierten Spark-Umgebungsvariablen werden beim Einreichen von Spark-Jobs angegeben.

curl -k -X POST "$job_endpoint" -H "Authorization: Bearer $token" -H "Content-Type: application/json" -d '{
"name": "spark-job",
"engine": {
 "env": {
   "SPARK_EXECUTOR_MEMORY": "12g",   # Overrides mutable setting
   "SPARK_WORKER_CORES": "4"        # Ignored (immutable setting)
 }
}
}'