Integrações — Spark
Visão geral das integrações
O chart tdp-spark oferece blocos opcionais Delta Lake e Iceberg, além de integração com Jupyter e Airflow via integration.jupyter e integration.airflow. A configuração S3/S3A e metastore depende do seu ambiente.
Delta Lake e Iceberg
Ative os blocos no values.yaml quando fizer sentido e complete spark.sparkConf / customSparkConfig.properties conforme a documentação das bibliotecas e da sua imagem.
Instalação típica (ajuste -f aos seus arquivos de values):
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-spark \
-n <namespace> \
-f values.yaml
Iceberg + Hive Metastore + armazenamento S3-compatível (exemplo)
Substitua metastore, endpoint e credenciais pelos valores do cliente:
spark:
sparkConf:
"spark.sql.catalog.iceberg": "org.apache.iceberg.spark.SparkCatalog"
"spark.sql.catalog.iceberg.type": "hive"
"spark.sql.catalog.iceberg.uri": "thrift://<hive-metastore-service>.<namespace>.svc.cluster.local:9083"
"spark.sql.catalog.iceberg.warehouse": "s3a://<bucket>/hive"
"spark.sql.catalog.iceberg.io-impl": "org.apache.iceberg.aws.s3.S3FileIO"
"spark.hadoop.fs.s3a.endpoint": "https://<s3-endpoint>"
"spark.hadoop.fs.s3a.access.key": "<access-key>"
"spark.hadoop.fs.s3a.secret.key": "<secret-key>"
"spark.hadoop.fs.s3a.path.style.access": "true"
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions"
"spark.sql.defaultCatalog": "iceberg"
Integração com Jupyter
No chart tdp-spark, a integração é feita por integration.jupyter.sparkConfig (ConfigMap renderizado pelo chart). Aponte spark.master e demais chaves para o serviço Spark do seu deploy:
integration:
jupyter:
enabled: true
sparkConfig:
"spark.master": "spark://<spark-master-service>.<namespace>.svc.cluster.local:7077"
# Opcional: ajustes de rede/porta conforme o notebook/driver no cluster
"spark.driver.bindAddress": "0.0.0.0"
Se o Jupyter for implantado por outro chart (por exemplo tdp-jupyter), use a documentação desse chart para cruzar namespaces, políticas de rede e URLs — o contrato do tdp-spark é expor o bloco integration.jupyter para defaults de cliente Spark.
Integração com Airflow
integration:
airflow:
enabled: true
sparkConfig:
"spark.master": "spark://<spark-master-service>.<namespace>.svc.cluster.local:7077"
"spark.driver.memory": "1g"
"spark.executor.memory": "2g"
"spark.executor.cores": "1"
Consulte Configuração do Airflow para alinhar operators e dependências com esse sparkConfig.