欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Spark的体系结构和安装配置

程序员文章站 2022-07-03 11:46:40
Spark体系结构 1、体系结构:Client-Server(主从模式) ----> 单点故障:HA(ZooKeeper) 安装和部署 准备工作:安装...

Spark体系结构

1、体系结构:Client-Server(主从模式) ----> 单点故障:HA(ZooKeeper)
       

Spark的体系结构和安装配置

安装和部署

准备工作:安装Linux、JDK、主机名、免密码登录
            standalone
            tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz -C ~/training/
            注意:hadoop和spark命令脚本有冲突,只能设置一个
            核心配置文件:spark-env.sh

*)伪分布模式: bigdata11机器
              spark-env.sh
                    export JAVA_HOME=/root/training/jdk1.8.0_144
                    export SPARK_MASTER_HOST=bigdata11
                    export SPARK_MASTER_PORT=7077

              slave文件:
                    bigdata11

              启动:sbin/start-all.sh
              Web Console: http://ip:8080  (内置了一个tomcat)

(*)全分布模式: bigdata12  bigdata13  bigdata14
            (1)在主节点上进行安装
              spark-env.sh
                    export JAVA_HOME=/root/training/jdk1.8.0_144
                    export SPARK_MASTER_HOST=bigdata12
                    export SPARK_MASTER_PORT=7077

              slave文件:
                    bigdata13
                    bigdata14                   

            (2) 复制到从节点上
                    scp -r spark-2.1.0-bin-hadoop2.7/ root@bigdata13:/root/training
                    scp -r spark-2.1.0-bin-hadoop2.7/ root@bigdata14:/root/training

            (3) 在主节点上启动
              启动:sbin/start-all.sh
              Web Console: http://ip:8080  (内置了一个tomcat)

3、Spark的HA实现:两种方式
        (1)基于文件系统的单点故障恢复:只有一个主节点、只能用于开发测试
            (*)特点:把Spark的运行信息写入到一个本地的恢复目录
                       如果Master死掉了,恢复master的时候从恢复目录上读取之前的信息
                       需要人为重启

            (*)Spark的运行信息
                Spark Application和Worker的注册信息

            (*)配置:
                 (a)创建目录:mkdir /root/training/spark-2.1.0-bin-hadoop2.7/recovery
                 (b)参数:
                        spark.deploy.recoveryMode:取值:默认NONE--> 没有开启HA
                                                         FILESYSTEM ---> 基于文件系统的单点故障恢复
                                                         ZOOKEEPER ---> 基于ZooKeeper实现Standby的Master
                        spark.deploy.recoveryDirectory: 恢复目录

                 (c)修改spark-env.sh
                       增加:export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/root/training/spark-2.1.0-bin-hadoop2.7/recovery"

            (*)测试:启动spark-shell
                    bin/spark-shell --master spark://bigdata12:7077

                    sbin/stop-master.sh
                    日志
                    scala> 18/02/09 00:40:42 WARN StandaloneAppClient$ClientEndpoint: Connection to bigdata12:7077 failed; waiting for master to reconnect...
                    18/02/09 00:40:42 WARN StandaloneSchedulerBackend: Disconnected from Spark cluster! Waiting for reconnection...
                    18/02/09 00:40:42 WARN StandaloneAppClient$ClientEndpoint: Connection to bigdata12:7077 failed; waiting for master to reconnect...

                    重新启动master

        (2)基于ZooKeeper实现Standby的Master
            (*)复习:相当于是一个“数据库”
                       角色:leader、follower
                       功能:选举、数据同步、分布式锁(秒杀功能)

            (*)原理
            (*)参数
                spark.deploy.recoveryMode   设置为ZOOKEEPER开启单点恢复功能,默认值:NONE
                spark.deploy.zookeeper.url  ZooKeeper集群的地址
                spark.deploy.zookeeper.dir  Spark信息在ZK中的保存目录,默认:/spark

            (*)修改spark-env.sh
                export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=bigdata12:2181,bigdata13:2181,bigdata14:2181 -Dspark.deploy.zookeeper.dir=/spark"
                另外,每个节点上,需要将以下两行注释掉
                #export SPARK_MASTER_HOST=spark82
                #export SPARK_MASTER_PORT=7077

            (*)测试
                  bigdata12: sbin/start-all.sh
                  bigdata13(14):手动启动一个master
                                   sbin/start-master.sh