基于docker构建spark运行环境
一、安装docker与docker-compose
参考之前的实验进行docker和docker-compose的安装。
二、系统构架图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/fe47bac6d1504a0d80f7a972d3cc15cb.png)
三、安装相关镜像
使用docker hub查找我们需要的镜像。
-
spark-master
![在这里插入图片描述](https://img-blog.csdnimg.cn/db1851afc2574b388378144e5d899202.png)
-
spark-worker
![在这里插入图片描述](https://img-blog.csdnimg.cn/7855a9669a5247e3993ccfb5b7cf6bf9.png)
四、docker compose部署文件准备
docker-compose.yml文件可以从本机编辑好再上传的虚拟机或服务器。
将docker-compose.yml文件拷贝到/usr/local/bin/内部并通过以下命令给予执行权限。
chmod 777
docker-compose.yml文件内容如下:
version: ‘3’
services:
spark-master:
image: bde2020/spark-master:3.1.1-hadoop3.2
container_name: spark-master
ports:
- “8080:8080”
- “7077:7077”
volumes:
- <共享目录绝对路径>:/data
environment:
- INIT_DAEMON_STEP=setup_spark
spark-worker-1:
image: bde2020/spark-worker:3.1.1-hadoop3.2
container_name: spark-worker-1
depends_on:
- spark-master
ports:
- “8081:8081”
volumes:
- <共享目录绝对路径>:/data
environment:
- “SPARK_MASTER=spark://spark-master:7077”
spark-worker-2:
image: bde2020/spark-worker:3.1.1-hadoop3.2
container_name: spark-worker-2
depends_on:
- spark-master
ports:
- “8082:8081”
volumes:
- <共享目录绝对路径>:/data
environment:
- “SPARK_MASTER=spark://spark-master:7077”
五、使用yml部署文件部署spark环境
-
在yml文件所在的目录下,执行命令:
sudo docker-compose up -d
-
检查docker在命令行的输出确认容器的部署顺利完成。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2e3fd0c736d34398b857a3114dbb8f79.png)
-
查看容器创建与运行状态
sudo docker ps
![在这里插入图片描述](https://img-blog.csdnimg.cn/c28aaa2f43734fd7b9873a5fe4b38f30.png)
-
对输出进行格式化(可选)
sudo docker ps --format ‘{{.ID}} {{.Names}}’
![在这里插入图片描述](https://img-blog.csdnimg.cn/95bcb154a46144049dd509449e489da3.png)
-
使用浏览器查看master的web ui界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f32e64636a84b3d88651c3cacfb5777.png)
-
进入spark-master容器
sudo docker exec -it <master容器的id,仅需输入一部分即刻> /bin/bash
![在这里插入图片描述](https://img-blog.csdnimg.cn/88dc49da3b8f4c52b9714e8eefbfa505.png)
-
查询spark环境,安装在/spark下面。
ls /spark/bin
![在这里插入图片描述](https://img-blog.csdnimg.cn/56709c8c94b64e8e95b570472d7a7b27.png)
-
进入spark-shell
/spark/bin/spark-shell --master spark://spark-master:7077 --total-executor-cores 4 --executor-memory 1280m
![在这里插入图片描述](https://img-blog.csdnimg.cn/80cdc759625d4fd6b8a7817237ced02c.png)
-
进入浏览器查看spark-shell的状态
![在这里插入图片描述](https://img-blog.csdnimg.cn/cfe86dd99eb24a528a4a597f0a0c9de9.png)
六、完成创建RDD与filter处理的实验
-
创建一个RDD
val rdd=sc.parallelize(Array(1,2,3,4,5,6,7,8))
![在这里插入图片描述](https://img-blog.csdnimg.cn/6a3e17ccd2cc4f2898f3faf0ba63f54e.png)
-
打印rdd内容
rdd.collect()
![在这里插入图片描述](https://img-blog.csdnimg.cn/8580e07b49ad4f64be32622461874453.png)
-
查询分区数
rdd.partitions.size
![在这里插入图片描述](https://img-blog.csdnimg.cn/a6d0b07ed34b4c25ba8313365d33744a.png)
-
选出大于5的数值
val rddFilter=rdd.filter(_ > 5)
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9540e96a5334a96af11addb030422f6.png)
-
打印rddFilter内容
rddFilter.collect()
![在这里插入图片描述](https://img-blog.csdnimg.cn/ab848d01641d4b72bead0ff39214d99c.png)
-
退出spark-shell
:quit
![:quit](https://img-blog.csdnimg.cn/32815a667f77447c9a0ee843f9ddd7b6.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)