目录
spark部署方式
-
Standalone模式
集群单机模式。在该模式下,spark集群架构为主从模式,此时集群会出现单点故障问题。
-
Yarn模式
Spark on Yarn模式,即把spark作为一个客户端,将作业提交给yarn服务。Yarn与Hadoop有密切关系。同时运行Hadoop和spark时优先选用。
yarn Cluster:用于生产环境,所有资源调度和计算都在集群上运行
Yarn Client:用于交互、调试环境
-
Mesos模式
Spark on Mesos模式,Mesos和Yarn同样是资源调度管理系统。Mesos与spark有密切关系
Standalone模式 搭建
解压 重命名
tar -zxvf spark-2.3.3-bin-hado.tgz -C /opt/programs #解压
mv spark-2.3.3-bin-hadoop2.7/ spark #重命名
修改配置文件
进入/spark/conf
目录
将配置模板文件spark-env.sh.template
复制一份并命名为spark-env.sh
cp spark-env.sh.templatespark-env.sh
修改配置文件spark-env.sh
#配置java环境变量
export JAVA_HOME=/opt/programs/jdk1.8.0_211
#指定Master的IP
export SPARK_MASTER_HOST=host01
#指定Master端口
export SPARK_MASTER_PORT=7077
复制文件slaves.template
并重命名为slaves
cp slaves.template slaves
修改配置文件slaves
#在最后删掉locelhost并添加
host02
host03
分发文件
修改完配置文件后,将spark目录分发到host02和host03
scp -r /opt/programs/spark/ host02:/opt/programs/
scp -r /opt/programs/spark/ host03:/opt/programs/
启动spark集群
在/spark文件夹下启动所有结点
sbin/start-all.sh
关闭所有结点sbin/stop-all.sh
单独启动主节点sbin/start-master.sh
三个节点分别执行 jps 【host01为master ,host02 host03为worker】
spark集群管理页面[host01]
https://主机IP:8080
spark HA集群部署
解决Standalone模式单点故障问题,需要用到Zookeeper服务。
其基本原理是将Standalone集群连接到同一个Zookeeper实例并启动多个Master节点,利用Zookeeper提供的选举和状态保存功能,可以使一台Master节点被选举,另外一台Master节点处于Standby状态。
配置spark HA集群操作
修改spark-env.sh配置文件
#指定Master的IP
#export SPARK_MASTER_HOST=host01 #注释掉
#指定Master端口
export SPARK_MASTER_PORT=7077
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER #设置zookeeper去启动备用master模式
-Dspark.deploy.zookeeper.url=host01:2181,host02:2181,host03:2181 #指定zookeeper的server地址
-Dspark.deploy.zookeeper.dir=/spark" #保存集群元数据信息的文件和目录
将配置文件分发至host02,host03
scp spark-env.sh host02:/opt/programs/spark/conf
scp spark-env.sh host03:/opt/programs/spark/conf
启动spark HA集群
启动zookeeper服务
1.依次在三个节点上启动zookeeper
zkServer.sh start
host01,host02节点zookeeper启动报错
解决:1.进入zookeeper/bin目录下进行启动
解决2:进入zookeeper/data 删除zookeeper_server.pid文件后启动
2.在host01主节点使用一键启动脚本启动
/spark/sbin/start-all.sh
3.单独启动master节点【host02节点上再次启动master服务】
/spark/sbin/start-master.sh
spark集群管理页面[host02]
测试host02节点是否转换为主节点
挂掉host01的master节点。host01spark集群管理界面不能访问,host02集群管理运行。
./sbin/stop-master.sh
感谢!zookeeper启动报错解决参考以下解决方法:
zookeeper启动报错:-bash: zkServer.sh: command not found命令未找到
zookeeper启动报错 Starting zookeeper ... already running as process xxx