Spark部署(详细版)
前言
Hello,我又来更新啦,这次的文章针对于Spark部署展开,带着大家一步步拆解如何去部署,每一步都有详细的文字介绍以及图片展示,清晰易懂,如果你也遇到了部署的问题或者感兴趣这篇文章的话,那就跟随我的脚步往下看吧~
同时如果这篇文章对你有所帮助,或者你也喜欢的话,可以动动你发财的小手给作者点点赞+收藏吗❤️你的一个赞就是我持续学习更新的动力~
目录
1.下载Spark安装包
这一步大家可以自行下载Spark安装包 。
我下载的版本是spark-3.3.4-bin-hadoop3.tgz。
Spark部署我以Hadoop1为例带着大家拆解。
将下载好的Sqoop安装包通过
rz
命令上传到虚拟机的/export/software目录下。


以解压缩的方式将Spark安装到/export/servers目录,在/export/software目录下执行以下命令:
tar xzvf spark-3.3.4-bin-hadoop3.tgz -C /export/servers/

为了方便后续使用,这里将Spark默认的安装目录重命名为spark,在虚拟机的/export/servers目录下执行如下命令:
mv spark-3.3.4-bin-hadoop3/ spark

2.修改配置文件
具体命令如下(注意这里在/export/servers/spark/conf目录下执行):
cp spark-env.sh.template spark-env.sh

上述命令执行完成后,执行
vi spark-env.sh
命令,编辑Sqoop环境变量文件 sqoop-env.sh,对该文件的内容进行如下修改:
export JAVA_HOME=/export/servers/jdk1.8.0_241
export SPARK_MASTER_HOST=hadoop1
export SPARK_MASTER_PORT=7077

注意:上述内容中,jdk用自己电脑配置的版本,SPARK_MASTER_HOST用自己的命名。
3.复制workers

注意:
1)文件不存在:从 ll 命令的输出可以看到,当前目录下根本没有 slaves.template 这个文件,所以 cp 命令会报错 “没有那个文件或目录”。
2)文件名变更:在新版Spark(2.x及以后)中,原来的slaves.template
已经改名为 workers.template,你在列表里也能看到这个文件。
复制一份workers,命令如下:
cp workers.template workers
vi workers
并进入修改添加内容:
vi workers
hadoop1
hadoop2


如果你也报错如图:

原因:
报错 No such file or directory 说明 hadoop2 节点上不存在 /export/servers/spark/conf/ 这个目录,所以 scp 无法把 workers 文件上传到这个路径。
解决方法:
第一步:先在 hadoop2 上创建缺失的目录
登录 hadoop2 执行(或者在 hadoop1 远程执行):
ssh root@hadoop2
mkdir -p /export/servers/spark/conf/
exit

如图所示即为成功。
第三步:对 hadoop3 执行同样的操作

如图所示即为成功。
验证一下:


4.启动spark集群
启动命令如下:
/export/servers/spark/sbin/start-all.sh

如果你也报错如图:

原因:
hadoop2、hadoop3 节点上没有 /export/servers/spark/sbin/start-worker.sh 这个文件,本质是 Spark 安装目录只在 hadoop1 有,hadoop2/hadoop3 缺少完整的 Spark 安装包。
解决方法:
第一步:把 hadoop1 的 Spark 完整目录分发到 hadoop2/hadoop3
在 hadoop1 的根目录执行以下命令,将整个 Spark 安装包同步到其他节点(确保路径一致):
# 分发到 hadoop2
scp -r /export/servers/spark/ root@hadoop2:/export/servers/

# 分发到 hadoop3
scp -r /export/servers/spark/ root@hadoop3:/export/servers/

第二步:验证目标节点的 Spark 文件是否存在
分别登录 hadoop2、hadoop3 检查:
# 登录 hadoop2
ssh hadoop2
ls /export/servers/spark/sbin/start-worker.sh # 能看到文件即为正常

# 登录 hadoop3
ssh hadoop3
ls /export/servers/spark/sbin/start-worker.sh # 能看到文件即为正常

第三步:先停止当前异常的集群,再重新启动
1. 在 hadoop1 停止集群(清理异常进程)
/export/servers/spark/sbin/stop-all.sh
2. 重新启动集群
/export/servers/spark/sbin/start-all.sh

第四步:验证启动结果
在 hadoop1 执行 jps:能看到 Master + Worker(localhost 对应的);

在 hadoop2 执行 jps:能看到 Worker;

在 hadoop3 执行 jps:能看到 Worker;

浏览器访问 http://hadoop1:8080:能看到 hadoop2、hadoop3 的 Worker 节点。

显示上图即为成功,到此为止,Spark配置就结束了。
5.测试
现在我们来测试运行一个spark内部自带的计算圆周率的例子代码:
/export/servers/spark/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[*] \
/export/servers/spark/examples/jars/spark-examples_2.12-3.3.4.jar \
10

出现下图结果即为成功:

6.总结
在部署Spark的过程中,大家如果也有遇到的问题,可以留言评论,我们互相学习~
以上就是个人对于部署Spark的每一步操作,希望可以帮助看到这篇文章的你,如有不足,希望大家多多包涵,有错的地方也欢迎大家指出,多多指教,我们互相学习,仅以此篇,与君共勉。
我是正在持续学习进步中的小丁同学哇~希望大家可以给我个点赞+收藏。
更多推荐
所有评论(0)