Apache Zeppelin com spark¶
Notebook Web que permite análises de dados interactivas e documentos colaborativos com SQL, Scala, Python, R.
Objetivo¶
Subir em docker um processador spark e submeter jobs para processamento de um arquivo de entrada CSV.
Links¶
[1] Spark docker: https://hub.docker.com/r/bitnami/spark
[2] Zeppelin docker: https://zeppelin.apache.org/docs/latest/quickstart/install.html#using-the-official-docker-image
[3] Setup Spark for zeppelin: https://medium.com/@mehrdad.al.2023/run-your-first-analysis-project-on-apache-zeppelin-using-scala-spark-shell-and-sql-e1b86a9fadd0
Instalação por Docker¶
Toda a configuração é feita utilizando o docker compose.
Spark
Dois containeres são configurados, um para gerenciador e um para nodo de processamento.
A spark-master
tem no seu environment
como - SPARK_MODE=master
, enquando que a spark-worker
tem como environment
a configuração - SPARK_MODE=worker
e - SPARK_MASTER_URL=spark://spark-master:7077
zeppelin
Para o conteiner do zeppelin é configurado a versão do spark e a home dentro do container para que ele possa encontrar os binários como spark-submit
: - ZEPPELIN_SPARK_VERSION=3.2.0 - ZEPPELIN_SPARK_HOME=/opt/bitnami/spark
.
OBS: Apenas as versões 0.?.0 conseguiram se conectar ao spark, ou seja, versões 0.9.0, 0.10.0 ou 0.11.0. Versões como 0.10.1, 0.11.1 ou 0.11.2 tiveram erro ao encontrar os binários de submit do spark
Para subir os containers utilize docker compose up -d
Acesse o localhost:9090
e abra na parte de tutoriais Spark Tutorial
. Dentro haverá notebooks pré-configurados.
Acesse o notebook Spark SQL (Scala)
e tente executar as células, caso apareça PENDING
significa que os jobs pro spark estão sendo submetidos. Caso haja erro aparecerá ERRO
e o log dos error logo abaixo da célula.