스파크 환경 변수는 세 가지 다른 수준에서 구성할 수 있습니다.

서비스 수준 구성 정의

Analytics Engine 의 서비스 수준(변경 불가능 및 변경 가능)에서 정의된 스파크 환경 변수는 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

인스턴스 레벨 구성 정의

인스턴스 레벨에서 정의된 스파크 환경 변수(변경 가능 및 변경 불가능)는 인스턴스 테이블 데이터베이스에 저장됩니다.

변경할 수 없는 환경 변수에 대해 다음 구성을 사용하십시오

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

변경 가능한 환경 변수에 대해 다음 구성을 사용하십시오

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

커널 레벨 구성 정의

커널 수준에서 정의된 Spark 환경 변수는 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)
 }
}
}'