Skip to content
/ lasagna Public

A Docker Compose template that builds a interactive development environment for PySpark with Jupyter Lab, MinIO as object storage, Hive Metastore, Trino and Kafka

Notifications You must be signed in to change notification settings

gmrqs/lasagna

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ambiente de desenvolvimento interativo de Apache Spark

Montado utilizando Docker Compose, Apache Spark, MinIO, Hive, PostgresSQL e Jupyter

Requisitos:

  • Docker Desktop
  • Docker Compose

Para utilizá-lo basta clonar o repositório e executar no diretório principal o comando:

docker compose up -d

Acesse os logs do workspace para obter o link do Jupyter Lab.

docker logs pyspark-dev-env-workspace-1

Clique no link http://127.0.0.1:8888/lab?token=<token_gigante_super_seguro>

O que é criado?

alt text

O template docker-compose.yml cria uma série de containers, entre eles:

Workspace

Um cliente Jupyter para sessões de desenvolvimento interativo com:

  • Diretório 'work' para persistir scripts e notebooks criados;
  • spark-defaults.conf para facilitar configuração das SparkSessions no cluster;

MinIO

Uma instância do MinIO, serviço de object storage que emula o funcionamento de um S3 com:

  • Interface web acessivel em localhost:9090
  • API para protocolo s3a na porta 9000
  • Diretório mount/minio e mount/minio-config para persistir dados entre sessões

Standalone Spark Cluster

Um cluster Spark para processamento dos workloads contendo:

  • 1 Master node (master na porta 7077, web-ui em localhost:5050)
  • 2 Worker node (web-ui em localhost:5051 e localhost:5052)
  • Dependências necessárias para conexão com o MinIO já instaladas nas imagens
  • Comunicação com MinIO através da porta 9000

Hive Standalone Metastore

Uma instância do Hive Standalone Metastore utilizando PostgreSQL no back-end para permitir a criação de tabelas externas.

  • Diretório mount/postgres para persistir tabelas entre sessões de desenvolvimento
  • Comunicação com o cluster Spark através do Thrift na porta 9083
  • Comunicação com o PostgresSQL através de JDBC na porta 5432

About

A Docker Compose template that builds a interactive development environment for PySpark with Jupyter Lab, MinIO as object storage, Hive Metastore, Trino and Kafka

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published