docker spark单机集群的部署
- 下载官方镜像
bitnami/spark latest
- 运行该镜像
docker run -itd -p 8080:8080 -p 7077:7077 --name=spark --network=spark_network -e SPARK_MODE=master bitnami/spark:latest
docker run -itd -p 8080:8080 -p 7077:7077 --name=spark --network=spark_network -e SPARK_MODE=master bitnami/spark:latest docker run -itd -p 8081:8081 --name=spark01 --network=spark_network -e SPARK_MODE=worker -e SPARK_MASTER_URL=spark://spark:7077 bitnami/spark:latest docker run -itd -p 8082:8081 --name=spark02 --network=spark_network -e SPARK_MODE=worker -e SPARK_MASTER_URL=spark://spark:7077 bitnami/spark:latest
- 以root用户方式进入容器
docker exec -it -u root ID sh
- 以提交jar包的方式向 spark 运行程序:
spark-submit --class "lambert.fun.Main" /home/xxx.jar
需指明主类,以及jar包位置(除了submit方式,还可以在代码中调用SparkSession
实现调用),提交spark自带的jar包spark-submit —class org.apache.spark.examples.SparkPi --deploy-mode spark ./examples/jars/spark-examples_2.12-3.0.0.jar 10
注意:这是在主节点内提交jar包--master local|spark://master:7077
属性可以指定提交到哪个集群主节点val spark = SparkSession .builder .appName("calc") .config("spark.master", "spark://192.168.1.247:7077") .getOrCreate()
spark submit 的可选参数
linux下二进制包如何安装spark
- 下载 spark 3.0 安装包
- 解压缩到 spark-local
- 进入该目录,执行 spark-shell即可使用
二进制安装包下的独立部署
- 同上解压缩
- 修改配置文件,将目录
conf
下的slaves
和spark-env.sh
的.template
去掉,在slaves
里添加spark1 spark2
,在spark-env.sh
里添加export JAVA_HOME=/opt/module/jdk1.8.0_144 SPARK_MASTER_HOST=spark SPARK_MASTER_PORT=7077
- 接下来为输入该命令为:
spark1,spark2
分发 spark 压缩包,sync spark-3.0/
执行该命令需要退出当前目录 - 分发完成后,再进入应用目录,输入该命令启动集群,
sbin/start-all.sh
- 查看集群内各进程都运行了什么,
xcall jps
- 访问
localhost:8080
既可查看到集群相关信息
扩展配置
配置历史记录
配置高可用,多 master 节点
docker swarm
参考文章