spark以standalone集群方式启动

折腾了一个下午,终于部署完成了,在这期间遇到几个需要注意的地方,记录下来,以防下次再被坑到

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 一定要开放端口或者关闭防火墙。


你可能感兴趣的:(spark以standalone集群方式启动)