目录

大数据-spark3.5安装部署之standalone模式

大数据-spark3.5安装部署之standalone模式

真实工作中还是要将应用提交到集群中去执行,Standalone模式就是使用Spark自身节点运行的集群模式,体现了经典的master-slave模式。集群共三台机器,具体如下

u22server4spark: master worker

u22server4spark2: worker

u22server4spark3: worker

配置免密登录

spark使用standalone模式部署时,从节点要与主节点之间进行通信。如果不配置免密登录,启动时会提示输入密码,很可能造成从节点没有成功启动;启动后当主从节点要互相访问时,依然需要密码,这时肯定失败,例如web查看时只看到一个主节点自身的worker。

节点互访存在于主从之间,从从之间不存在。所以免密配置存在于主从、从主之间。

免密登录配置过程详见:《 》

配置master

上传解压

使用PortX将jdk、spark文件上传至/opt

https://i-blog.csdnimg.cn/direct/9d8a8fd3a5764807aaca0a9c090fc36a.png

https://i-blog.csdnimg.cn/direct/5da13e7dfba6451fa7c6fe9c52df1516.png

jdk解压

tar zxvf jdk-8u271-linux-x64.tar.gz

https://i-blog.csdnimg.cn/direct/382ee139d4184466872c73df5d183650.png

spark解压

进入/opt目录,创建目录module,解压文件至/opt/module

https://i-blog.csdnimg.cn/direct/336dc07943f84032b5a070ba56a9b150.png

进入module,并修改名称为spark-standalone

https://i-blog.csdnimg.cn/direct/b8064493cad74c729b5e8d8ed93bff50.png

调整配置文件

要调整的配置内容包括:jdk环境变量、hosts文件、spark配置文件。

jdk环境变量

以root用户配置环境变量

cd ~

https://i-blog.csdnimg.cn/direct/d0e1baf542894cb49093d121f0fc863a.png

https://i-blog.csdnimg.cn/direct/d19c868899fd449abc75868b44fd12a0.png

保存后,以root用户,执行source .profle,使更改生效,并验证。

https://i-blog.csdnimg.cn/direct/f70842e1e682431b9504498485b2d11a.png

hosts文件

除将master本机即u22server4spark的ip与主机名写入外,还需要将将另外两台worker从机的ip地址与主机名写入u22server4spark的/etc/hosts,并将127.0.0.1 u22server4spark注释。否则造成环路,两个从机向master注册不成功,web查看时,wokers只会出现主机所在的这个worker。

vi /etc/hosts

https://i-blog.csdnimg.cn/direct/d45477656c274b48af83f04da58a5449.png

spark配置文件

进入conf目录,修改workers.template为workers

https://i-blog.csdnimg.cn/direct/a5c82e0d7e9543de966b5ecb271e72ea.png

修改workers文件,添加worker节点,即集群中的主机名

https://i-blog.csdnimg.cn/direct/9d3192d8db384addb5640326487d7cdb.png

修改spark-env.sh.template文件名为spark-env.sh

https://i-blog.csdnimg.cn/direct/6877e4519a704b4693340e4be982c645.png

向spark-env.sh添加内容JAVA_HOME环境变量及对应的master节点

https://i-blog.csdnimg.cn/direct/15986da433fb467fad409488e0275033.png

https://i-blog.csdnimg.cn/direct/05b4f315b6ca457493d07e3b6f30033e.png

备注:7077是默认的内部通信端口

分发至集群其他机器

分别向两台从机u22server4spark2、u22server4spark3分发jdk、spark文件。

分发至u22server4spark2

scp -r /opt/jdk1.8.0_271 u22server4spark2:/opt

或者 scp -r /opt/jdk1.8.0_271 192.168.12.77:/opt

https://i-blog.csdnimg.cn/direct/69deaa1ebfda4919a432277e7192a9b7.png

分发spark前,在u22server4spark2的/opt中新建目录module

scp -r /opt/module/spark-standalone u22server4spark2:/opt/module

分发至u22server4spark3

scp -r /opt/jdk1.8.0_271 u22server4spark3:/opt

或者 scp -r /opt/jdk1.8.0_271 192.168.12.88:/opt

https://i-blog.csdnimg.cn/direct/004e292f612b43ed8c77d5fd58070fdf.png

分发spark前,在u22server4spark3的/opt中新建目录module

scp -r /opt/module/spark-standalone u22server4spark3:/opt/module

配置worker

u22server4spark2

jdk环境变量

同前

hosts文件

向从机的/etc/hosts文件中添加master主机信息,并将127.0.0.1 u22server4spark2注释

vi /etc/hosts

https://i-blog.csdnimg.cn/direct/407f428668c04c15bb8b239ac5d85a19.png

配置worker2

u22server4spark3

jdk环境变量

同前

hosts文件

向从机的/etc/hosts文件中添加master主机信息,并将127.0.0.1 u22server4spark3注释

vi /etc/hosts

https://i-blog.csdnimg.cn/direct/9940b46fd7f14d0f8fcfc99fb2e54c73.png

验证操作

执行以下操作,如果都没有报错,则spark安装部署成功。

启停

启动

直接在master主机即u22server4spark,运行脚本 ./start-all.sh

或者

分别在主机即u22server4spark,运行 ./start-master.sh;从机即u22server4spark2、u22server4spark3运行脚本 ./start-worker.sh

https://i-blog.csdnimg.cn/direct/eed632b45a444c878a0af1fdb7b78925.png

主机jps

https://i-blog.csdnimg.cn/direct/4d3bedf248974b4bb2921cfb46fe844d.png

从机jps

https://i-blog.csdnimg.cn/direct/d4f5dc65563f4cadb73b696b216b5127.png

https://i-blog.csdnimg.cn/direct/4d3962e021cd44efbacd00d455ace8ba.png

web

https://i-blog.csdnimg.cn/direct/ddf4777c78964eaca0eb862cf1ad5022.png

停止

直接在master主机即u22server4spark,运行脚本 ./stop-all.sh

或者

分别在主机即u22server4spark,运行 ./stop-master.sh;从机即u22server4spark2、u22server4spark3运行脚本 ./stop-worker.sh

交互

使用命令行或者提交作业的方式,与spark进行交互。

命令行

同local即本地部署

提交应用

向主机节点即u22server4spark提交一个简单的Spark任务测试集群是否配置成功

bin/spark-submit \

–master spark://192.168.12.66:7077 \

–class org.apache.spark.examples.SparkPi \

./examples/jars/spark-examples_2.12-3.5.5.jar \

10

备注:示例代码在spark的目录中

应用运行中,查看web时,会在Running Applications下方看到;应用完成后,查看web时,会在Compleeted Applications下方看到。

https://i-blog.csdnimg.cn/direct/1c5a340f5caa47768f3a6adad6b8ec78.png

https://i-blog.csdnimg.cn/direct/f7a0bd35092d416fb36d19b3920604ce.png

https://i-blog.csdnimg.cn/direct/6ab5001be35d4299852cbb5aa542d4f9.png