当前位置:   article > 正文

Spark部署详细教程

spark部署

部署spark

Standalone模式的spark

部署

#(1)通过以下步骤,配置Worker节点
#a)重命名slaves.template文件为slaves,使用以下命令:
mv /usr/local/spark/conf/slaves.template /usr/local/spark/conf/slaves
#b)编辑slaves文件,使用以下命令:
vim /usr/local/spark/conf/slaves
#c)替换原有的localhost为以下内容:
# 设置 worker 节点
master
slave1
slave2

#(2)通过以下步骤,配置Spark集群运行参数:
#a)重命名spark-env.sh.template配置文件为spark-env.sh,使用以下命令:
mv /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh
#b)编辑spark-env.sh文件,在最后追加以下内容:
# 设置 JDK 目录
export JAVA_HOME=/usr/local/lib/jdk1.8.0_212
# 设置 web 监控页面端口号
export SPARK_MASTER_WEB_PORT=7077
# 设置 zookeeper 集群地址,实现高可用
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/usr/local/spark"
# 设置 YARN 的配置文件目录
export YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop
# 设置 HDFS 的配置文件目录
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

#(3)通过以下步骤,部署Spark到slave1和slave2:
#a)创建spark目录,在slave1和slave2使用以下命令:
sudo mkdir /usr/local/spark
#b)修改spark目录的所有者为hadoop用户,在slave1和slave2使用以下命令:
sudo chown hadoop /usr/local/spark/
#c)发送spark给slave1和slave2,在master使用以下命令:
scp -r /usr/local/spark/* hadoop@slave1:/usr/local/spark/
scp -r /usr/local/spark/* hadoop@slave2:/usr/local/spark/
#d)发送环境变量给slave1和slave2,在master使用以下命令:
scp /home/hadoop/.bashrc hadoop@slave1:/home/hadoop/
scp /home/hadoop/.bashrc hadoop@slave2:/home/hadoop/
#e)刷新环境变量,在slave1和slave2使用以下命令:
source /home/hadoop/.bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

启动

以Standalone模式运行程序需要先启动Spark集群,常用的脚本命令如下表所示:

表2-3 常用的Spark命令脚本

脚本描述
start-master.sh在执行该脚本的机器上启动Master进程
start-slaves.sh在slaves文件中指定的每个节点上启动Worker进程
start-all.sh执行start-master.sh和start-slaves.sh两个脚本
stop-master.sh关闭由start-master.sh脚本启动的Master进程
stop-slaves.sh关闭由start-slaves.sh脚本启动的Worker进程
stop-all.sh执行stop -master.sh和stop -slaves.sh两个脚本

需要注意的是,这些脚本都需要在你打算作为Master节点的服务器上执行。

Spark的Master节点也面临单点故障问题,需要通过zookeeper集群实现高可用。这个配置我们已经在spark-env.sh文件中配置好了。

综上所述,启动Spark集群需要以下步骤:

(1) 启动所有节点的Zookeeper,在master、slave1和slave2使用以下命令:

zkServer.sh start
  • 1

(2) 在master启动Spark集群,在master使用以下命令:

start-all.sh
  • 1

(3) 在slave1启动备用master,在slave1使用以下命令:

start-master.sh
  • 1

(4) 在master、slave1和slave2使用以下命令查看进程,效果如下图所示:

jps
  • 1

图2-6 Standalon模式的Spark的进程
在这里插入图片描述

(5) 在浏览器输入以下网址访问Spark的web监控页面,效果如下图所示:

http://master:8085/

图2-7 Spark的web监控页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Odr5EPlk-1677674028560)(picture_cache/Spark授课版/wps2.jpg)]

如果大家按步骤安装完成却不能运行Spark,那么需要学会通过查看日志信息来解决问题。Spark在启动期间记录了详尽的日志信息,保存在安装目录下的logs目录内。

问题

  1. 克隆的镜像或者下载别人的镜像后,要修改网络ip可ping通,才可连xshell
  2. 使用集群运行程序或还原到某个节点,注意修改ip,hosts,密钥,进行同步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17yhuebU-1677674028561)(picture_cache/Spark授课版/0.jpg)]

#(1)启动三台虚拟机,并在Xshell中全部以hadoop用户登录
#(2)配置hosts文件,让三台虚拟机能够以主机名进行互相访问,分别使用以下命令:
#a.编辑hosts文件:
sudo vim /etc/hosts
#b.在文件最后增加以下内容:
192.168.114.133(改为自己的ip) master
192.168.114.134(改为自己的ip) slave1
192.168.114.135(改为自己的ip) slave2
c.在3个节点分别使用ping master、ping slave1和ping slave2命令验证互相之间是否可以通过主机名访问。

#(3)配置三个节点之间的免密登录,分别进行以下操作:
#a.使用命令删除3个节点上的ssh配置文件
sudo rm -rf /home/hadoop/.ssh 
#b.在3节点上使用命令生成公钥和私钥
ssh-keygen
#c.在3个节点上使用命令发送公钥给master节点
ssh-copy-id master
#d.在master节点上分别使用以下命令发送authorized_keys文件给slave1和slave2:
scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/
scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  1. 部署Standalone模式下的spark后,无法访问web界面,使用jps查看进程无错误
    请添加图片描述请添加图片描述

原因:spark默认端口是8080,8080端口会被其他程序占用,所以需要修改

#进入sbin目录
cd /usr/local/spark/sbin
#编辑start-master.sh,修改默认端口,我这里修改8080为8081
vim start-master.sh
  • 1
  • 2
  • 3
  • 4

请添加图片描述

#编辑start-master.sh,修改默认端口,我这里修改8080为8081
vim start-master.sh
  • 1
  • 2

请添加图片描述

#重启spark使生效
stop-all.sh
start-all.sh
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/317068
推荐阅读
相关标签
  

闽ICP备14008679号