Skip to content

About

No description or website provided.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

Infra Ozone

Infraestructura minima para levantar Apache Ozone como storage compartido para Spark.

Alcance

  • Local: Docker Compose para pruebas manuales.
  • Produccion: Apache Ozone instalado en Linux y administrado por systemd.
  • Topologia v1: una VM con SCM, OM, Datanode, Recon y S3 Gateway.
  • Seguridad v1: protegida por red privada/firewall y GitHub Environment secrets.

Local

cp .env.example .env
make config
make up
make bootstrap-bucket
make healthcheck

Servicios locales:

  • S3 Gateway: http://localhost:9878
  • Recon: http://localhost:9888
  • SCM UI: http://localhost:9876
  • OM UI: http://localhost:9874

Para apagar:

make down

Produccion

Produccion usa systemd, no Docker. Los defaults son:

  • Instalacion: /opt/ozone/current
  • Configuracion: /etc/ozone
  • Datos: /data/ozone
  • Logs: /var/log/ozone
  • Pids/runtime: /run/ozone
  • Usuario/grupo: ozone:ozone

En v1 las units de systemd asumen /opt/ozone/current, /etc/ozone y ozone:ozone; no cambies esos valores sin actualizar tambien los archivos en production/systemd/.

Limites de recursos en produccion:

  • Todos los servicios corren dentro de ozone.slice, con limite agregado de CPU, memoria y tasks/pids, mas I/O accounting.
  • Las quotas se configuran desde .env con variables OZONE_SLICE_*, OZONE_SCM_*, OZONE_OM_*, OZONE_DATANODE_*, OZONE_RECON_*, OZONE_S3G_* y OZONE_SYSTEMD_*.
  • El deploy renderiza production/systemd/*.service y production/systemd/*.slice antes de instalarlos en /etc/systemd/system.
  • El heap JVM se configura con OZONE_HEAPSIZE_MAX y OZONE_HEAPSIZE_MIN en .env; mantener MemoryMax por encima de OZONE_HEAPSIZE_MAX.
  • El espacio maximo de disco se controla con el volumen o particion montada en /data/ozone; las units habilitan IOAccounting para observar I/O desde systemd.

Primera ejecucion manual en la VM:

cp .env.example .env
bash production/scripts/deploy-production.sh --env-file .env

El deploy hace:

  • crea usuario y directorios si faltan;
  • instala Java si falta y OZONE_INSTALL_JAVA=true;
  • descarga Apache Ozone OZONE_VERSION;
  • renderiza ozone-site.xml, ozone-env.sh y workers;
  • instala units de systemd;
  • inicializa SCM y OM solo si falta metadata;
  • reinicia servicios en orden;
  • crea/verifica el bucket OZONE_BUCKET.

Servicios:

systemctl status ozone-scm
systemctl status ozone-om
systemctl status ozone-datanode
systemctl status ozone-recon
systemctl status ozone-s3g

GitHub Actions

Cuando esta carpeta sea repo raiz, configurar:

  • Environment: production
  • Secret: PRODUCTION_ENV_FILE con el contenido completo de .env
  • Variable opcional: OZONE_REPO_DIR; default /srv/infra-ozone
  • Runner labels: self-hosted, Linux, X64, ozone-production, production-deploy

El workflow de produccion actualiza el repo en la VM, escribe .env.next, valida scripts y render de config, respalda .env, ejecuta bash production/scripts/deploy-production.sh y verifica las units instaladas con systemd-analyze.

Variables para el ETL

Despues de desplegar Ozone, el repo ETL debe apuntar al S3 Gateway:

OZONE_S3_ENDPOINT=http://<ozone-vm-private-host>:9878
OZONE_S3_REGION=us-east-1
OZONE_S3_ACCESS_KEY=<secret>
OZONE_S3_SECRET_KEY=<secret>
OZONE_S3_PATH_STYLE_ACCESS=true
OZONE_S3_BUCKET_PROBE=0
OZONE_S3_CHANGE_DETECTION_MODE=none

MCDONALDS_SPARK_DF_IO_BASE_PATH=s3a://mcdonalds-etl/dagster_io/spark_dfs/mcdonalds
SMARTFIT_SPARK_DF_IO_BASE_PATH=s3a://mcdonalds-etl/dagster_io/spark_dfs/smartfit
CDP_SPARK_DF_IO_BASE_PATH=s3a://mcdonalds-etl/dagster_io/spark_dfs/mcdonalds_cdp
GABINETE_SPARK_DF_IO_BASE_PATH=s3a://mcdonalds-etl/dagster_io/spark_dfs/bafar_poc_gabinete

En modo no seguro, Ozone acepta credenciales estilo AWS para S3G; guardarlas de todos modos como secrets y no commitear .env.

Referencias

About

No description or website provided.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages