zoukankan      html  css  js  c++  java
  • Spark--Standalone部署模式

    Standalone部署模式

    独立部署模式,自身除了计算,也负责资源的调度。

    集群规划

    hadoop101 hadoop102 hadoop103
    Spark Worker(Master) Worker Worker

    安装文件

    spark-3.0.1-bin-hadoop2.7.tgz

    将其解压缩

    tar -zxvf spark-3.0.1-bin-hadoop2.7.tgz -C /opt/module
    

    修改配置文件

    (1)进入到解压缩之后对应文件的conf文件夹下,修改salves.template文件名为slaves

    mv salves.template salves
    

    (2)修改slaves文件,添加worker节点

    hadoop101
    hadoop102
    hadoop103
    

    (3)修改spark-env.sh.template文件名为spark-env.sh

    mv spark-env.sh.template spark-env.sh
    

    (4)修改spark-env.sh文件,添加Java的环境变量,设置集群的Master节点

    export JAVA_HOME=/opt/module/jdk1.8.0_144 
    SPARK_MASTER_HOST=hadoop101 
    SPARK_MASTER_PORT=7077
    

    7077端口是spark集群内部通信的端口

    (5)分发当前spark的安装目录

    xsync spark
    

    启动集群

    (1)在spark的安装目录下执行启动脚本命令:

    sbin/start-all.sh
    

    (2)查看三台服务器的进程信息

    xcall jps
    

    (3)查看Master资源监控的Web界面

    http://hadoop101:8080
    

    提交测试应用

    spark自带了用于测试的样例应用,已经打包成了Jar包,现在拿来测试

    bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop101:7077 ./examples/jars/spark-examples_2.12-3.0.1.jar 10
    

    参数说明:

    --class 表示要执行程序的主类

    --master spark://hadoop101:7077 独立部署模式,连接到Spark集群,地址为master地址

    spark-examples_2.12-3.0.1.jar 运行类所在的jar包

    数字10 表示程序的入口参数,用于设定当前应用的任务数量

    配置历史服务

    配置历史服务是为了能够记录任务的运行情况,以便于查看。

    (1)修改spark-defaults.conf.template文件名为spark-defaults.conf

    mv spark-defaults.conf.template spark-defaults.conf
    

    (2)修改spark-defaults.conf文件,添加日志存储路径信息

    spark.eventLog.enabled  true
    spark.eventLog.dir  hdfs://hadoop101:9000/directory
    

    注意:需要启动hadoop集群,HDFS上的directory目录需要提前存在

    sbin/start-dfs.sh
    hadoop fs -mkdir /directory
    

    (3)修改spark-env.sh文件,添加日志配置

    export SPARK_HISTORY_OPTS=" 
    -Dspark.history.ui.port=18080 
    -Dspark.history.fs.logDirectory=hdfs://hadoop101:9000/directory 
    -Dspark.history.retainedApplications=30"
    

    参数含义:

    • 参数1 :历史服务器页面,端口号为18080
    • 参数2:指定历史服务器日志存储路径
    • 参数3:指定保存application历史记录的个数,如果超过这个值,旧的应用程序将被删除,这个是内存中的应用数量,不是页面上显示的应用数。

    (4)分发配置文件

    xsync conf
    

    (5)重新启动spark集群和历史服务器

    sbin/start-all.sh 
    sbin/start-history-server.sh
    

    (6)重新执行测试应用的任务

    bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop101:7077 ./examples/jars/spark-examples_2.12-3.0.1.jar 10
    

    (7)历史服务器的查看地址:http://hadoop101:18080

    配置高可用

    ​ 配置高可用是因为当前集群中的Master节点只有一个,所以会存在单点故障问题。所以为了解决单点故障问题,需要在集群中配置多个Master节点,一旦处于活动状态的Master发生故障时,由备用Master提供服务,保证作业可以继续执行。这里的高可用一般采用Zookeeper设置。

    集群规划

    hadoop101 hadoop102 hadoop103
    Spark Zookeeper、Master、Worker Zookeeper、Master、Worker Zookeeper、Worker

    (1)启动zookeeper集群

    zk.sh start
    

    (2)修改spark-env.sh文件,添加如下配置

    注释如下内容: 
    #SPARK_MASTER_HOST=hadoop101 
    #SPARK_MASTER_PORT=7077
    
    添加如下内容: 
    #Master监控页面默认访问端口为8080,但是可能会和Zookeeper 冲突,所以改成8989,也可以自定义,访问UI监控页面时请注意 
    SPARK_MASTER_WEBUI_PORT=8989
    export SPARK_DAEMON_JAVA_OPTS="
    -Dspark.deploy.recoveryMode=ZOOKEEPER 
    -Dspark.deploy.zookeeper.url=hadoop101,hadoop102,hadoop103 
    -Dspark.deploy.zookeeper.dir=/spark"
    

    (3)分发配置文件

    xsync conf/
    

    (4)启动集群

    sbin/start-all.sh
    

    (5)启动hadoop102的单独Master节点,此时hadoop102节点Master状态处于备用状态

    sbin/start-master.sh
    

    (6)提交测试应用到高可用集群

    bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop101:7077,hadoop102:7077 ./examples/jars/spark-examples_2.12-3.0.1.jar 10
    

    (7)可将hadoop101的master进程杀掉

    kill -9 进程号
    

    (8)进入地址:hadoop102:8989的页面,过一会儿会发现,hadoop102节点的master状态提升为活动状态。

  • 相关阅读:
    动态发布接口
    高频访问IP弹验证码架构图 让被误伤的用户能及时自行解封的策略
    C/C++ Lua通信
    Mercurial
    goroutine chan 通道
    HotSpot VM
    # 释放内存 filter_res_q_l = filter_res_q_l[-2048:] filter_res_a_l = filter_res_a_l[-2048:]
    mongo 统计数据磁盘消耗
    不基于语义的基于字符串交集的字符串相似度比较
    拥塞控制 流量控制
  • 原文地址:https://www.cnblogs.com/yxym2016/p/14145568.html
Copyright © 2011-2022 走看看