前言

Hello,我又来更新啦,这次的文章针对于Spark部署展开,带着大家一步步拆解如何去部署,每一步都有详细的文字介绍以及图片展示,清晰易懂,如果你也遇到了部署的问题或者感兴趣这篇文章的话,那就跟随我的脚步往下看吧~

同时如果这篇文章对你有所帮助,或者你也喜欢的话,可以动动你发财的小手给作者点点赞+收藏吗❤️你的一个赞就是我持续学习更新的动力~

目录

1.下载Spark安装包

2.修改配置文件

3.复制workers

4.启动spark集群

5.测试

6.总结

 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的每一步操作,希望可以帮助看到这篇文章的你,如有不足,希望大家多多包涵,有错的地方也欢迎大家指出,多多指教,我们互相学习,仅以此篇,与君共勉。

我是正在持续学习进步中的小丁同学哇~希望大家可以给我个点赞+收藏。

更多推荐