本文分两种方法搭建集群,一种是普通的集群,一种是HA分布式集群
普通集群搭建:
- 下载spark tar包
- 将tar上传到Linux服务器中
安装路径: /export/server/spark-2.4.0 - 配置环境
进入到spark-2.4.0/conf路径下
4.1将spark-env.sh.template改成spark-env.sh
vi spark-env.sh
#配置java环境变量
export JAVA_HOME=/export/server/jdk1.8
#指定master的位置
export SPARK_MASTER_HOST=node1
#指定master的端口号
export SPARK_MASTER_PORT=7077
#spark跟hadoop进行整合
export HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
第一个是java环境变量,第二个是Master的端口号,最后一个是hadoop配置文件的位置.我的hadoop安装路径/export/server,这个需要换成自己的安装路径。
4.2 将slaves.template改成slavs
vi slaves
node2
node3
将worker节点的地址写入slaves文件中
5.启动集群
进入到spark2.4.0/sbin目录下
./start-all.sh
使用jps查看进程
访问web端口:http://hadoop-node1:8080/
HA集群搭建
1. 首先,需要搭建zookeeper集群
2. 修改spark-env.sh
将master的ip地址注释掉
# export SPARK_MASTER_HOST=node1
加上下面这句话
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,node2:2181,node3:2181 -Dspark.deploy.zookeeper.dir=/spark1"
解释:zookeeper-url后面指向的是zookeepra每个节点的ip地址,dir指向元数据存放的位置,自己可以随便指定
3.正常启动集群:
3.1在master主节点上,spark-2.4.0/bin目录下
./start-all.sh
访问http://hadoop-node1:8080/,此时主节点的状态是alive
3.2在worker节点上,spark2.4.0/bin目录下
./start-master.sh
启动备用的master节点
访问http://hadoop-node2:8080/,此时主节点的状态是standby
4.验证HA是否搭建成功,在主节点上,将master进程kill -9,杀掉
此时访问备用节点的地址http://hadoop-node2:8080/,等待两分钟左右,standby会变成alive