可以利用 Docker,在本地跑 Spark + Postgres。
拉去 Spark 镜像
docker pull bitnami/spark:3.4
将 postgresql.jar 复制到镜像里面去
docker run -it bitnami/spark:3.4 bash
把 spark 跑起来,再把 postgresql.jar 复制进去,打成新的 image。
docker cp ./postgresql-42.6.0.jar f81714a5c962:/opt/bitnami/spark/
docker commit f81714a5c962 spark-pg:3.4
最后 docker compose up
创建 docker-compose.yml 文件,直接docker compose up
,拉起两个 container。
version: "2"
services:
spark:
image: spark-pg:3.4
environment:
- SPARK_MODE=master
- SPARK_RPC_AUTHENTICATION_ENABLED=no
- SPARK_RPC_ENCRYPTION_ENABLED=no
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
- SPARK_SSL_ENABLED=no
- SPARK_USER=spark
ports:
- "8080:8080"
- 7077:7077
spark-worker:
image: spark-pg:3.4
environment:
- SPARK_MODE=worker
- SPARK_MASTER_URL=spark://spark:7077
- SPARK_WORKER_MEMORY=1G
- SPARK_WORKER_CORES=1
- SPARK_RPC_AUTHENTICATION_ENABLED=no
- SPARK_RPC_ENCRYPTION_ENABLED=no
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
- SPARK_SSL_ENABLED=no
- SPARK_USER=spark
ports:
- 8081:8081