As variáveis de ambiente do Spark podem ser configuradas em três níveis distintos.
- Nível de serviço (configuração em todo o serviço): Aplica-se a todas as instâncias e trabalhos do Spark e você não pode substituir as variáveis imutáveis definidas aqui.
- Nível de instância (específico para instâncias de Analytics Engine ): Específico para uma única instância do site Analytics Engine. Você pode substituir as variáveis mutáveis definidas aqui, mas não pode substituir as variáveis imutáveis.
- Nível de trabalho/Kernel (específico para trabalhos individuais do Spark): Variáveis de ambiente que são passadas ao enviar um trabalho do Spark. Somente variáveis mutáveis podem ser definidas nesse nível.
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)
}
}
}'