折腾了一个下午,终于部署完成了,在这期间遇到几个需要注意的地方,记录下来,以防下次再被坑到
1、在配置spark-env的时候需要export java_home 所以需要查找JAVA_HOME ,此处是centos7版本
(1)which java /usr/bin/java
(2)ls -la /usr/bin/java /usr/bin/java -> /etc/alternatives/java 此处是个链接
(3)ls -la /etc/alternatives/java
/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre/bin/java
此处是真正的java_home
2、启动四台虚拟机,暂时一台作为master,其它三台作用worker
(1)下载spark-2.3.0-bin-hadoop2.7 在spark官网下载最新版本,配合jdk1.8,在master与node均相同的配置。
(2)设置免登录,ssh-keygent生成 ssh密钥,把所有的密钥放在同一个文件中authorized_keys中,把这个文件copy到其它node.
(3)修改 conf/slaves 添加worker ,把每个worker节点的名称或者ip补充在最后面
(4)修改 conf/spark-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre
export SPARK_MASTER_IP=spark-master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=1g
(5)开放端口或者关门防火墙 systemctl stop firewalld fystemctl disable firewalld
3、加入热备,当一台master挂掉,另一台master可以立即启动
(1)官网下载zookeeper稳定版本
(2)copy一份conf/zook_example.cfg -->conf/zook.cfg
(3)在每一台机器启动 ./bin/zkServer.sh start/stop/status
(4)重新启动spark ,把某一个worker当作热备,修改配置文件 conf/spark-env.sh
(5)启动 start_master.sh
注意点:1、zookeeper与spark的启动顺序,必须先启动zookeeper再启动spark
2、测试热备的时候,必需要修改热备worker的spark-env.sh ----- export SPARK_MASTER_IP=spark-node1
3、热备的防火墙也必须要关掉,即作用master的spark 一定要开放端口或者关闭防火墙。