As variáveis de ambiente do Spark podem ser configuradas em três níveis distintos.

Definição da configuração do nível de serviço

As variáveis de ambiente do Spark definidas em nível de serviço (tanto imutáveis quanto mutáveis) no recurso personalizado Analytics Engine são configurações globais que afetam todas as instâncias e trabalhos no serviço Analytics Engine.

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

Definição da configuração em nível de instância

As variáveis de ambiente do Spark definidas no nível da instância (mutáveis e imutáveis) são armazenadas no banco de dados da tabela de instâncias.

Use a seguinte configuração para as variáveis de ambiente Immutable

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"
}'

Use a seguinte configuração para variáveis de ambiente mutáveis

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"
}'

Definição da configuração no nível do kernel

As variáveis de ambiente do Spark definidas no nível do kernel são especificadas durante o envio de trabalhos do Spark.

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)
 }
}
}'