栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Spark 集群安装与部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spark 集群安装与部署

文章目录
    • Spark集群安装部署
      • 上传并解压
      • 修改配置文件
      • 启动集群
      • 提交应用
      • 配置历史服务器
      • 配置高可用(HA)
      • Yarn 模式

Spark集群安装部署

集群规划:

三台主机的名称为:hadoop102, hadoop103, hadoop104。集群规划如下:

hadoop102hadoop103hadoop104
Master+WorkerWorkerWorker
上传并解压

Spark下载地址:
https://spark.apache.org/downloads.html

将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 Linux 并解压缩在指定位置

tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
cd /opt/module 
mv spark-3.0.0-bin-hadoop3.2 spark
修改配置文件
  1. 进入解压缩后路径的 conf 目录,修改 slaves.template 文件名为 slaves

    mv slaves.template slaves
    
  1. 修改 slaves 文件,添加 work 节点

    hadoop102
    hadoop103
    hadoop104
    
  2. 修改 spark-env.sh.template 文件名为 spark-env.sh

    mv spark-env.sh.template spark-env.sh
    
  3. 修改 spark-env.sh 文件,添加 JAVA_HOME 环境变量和集群对应的 master 节点

    export JAVA_HOME=/opt/module/jdk1.8.0_144	//修改为自己对应的jdk路径
    SPARK_MASTER_HOST=hadoop102
    SPARK_MASTER_PORT=7077
    
  4. 分发 spark 目录

    xsync spark
    

    注意需要提前安装xsync免密登录,如果未配置可以参考:https://blog.csdn.net/hshudoudou/article/details/123101151?spm=1001.2014.3001.5501

启动集群
  1. 执行脚本命令:

    sbin/start-all.sh
    

  1. 查看三台服务器的进程

  1. 查看 Master 资源监控 Web UI 界面: http://hadoop102:8080

提交应用
bin/spark-submit 
--class org.apache.spark.examples.SparkPi 
--master spark://hadoop102:7077 
./examples/jars/spark-examples_2.12-3.0.0.jar 
10
  1. –class 表示要执行程序的主类

  2. –master spark://hadoop102:7077 独立部署模式,连接到 Spark 集群

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

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

提交参数说明:在提交应用中,一般会同时一些提交参数

参数解释可选值举例
–classSpark 程序中包含主函数的类
–masterspark 程序运行的模式(环境)模式:local[*]、spark://linux1:7077、 Yarn
–executor-memory 1G指定每个 executor 可用内存为 1G其余配置根据情况设定即可
–total-executor-cores 2指定所有executor使用的cpu核数为 2 个
–executor-cores指定每个executor使用的cpu核数
application-jar打包好的应用 jar,包含依赖。
application-arguments传给 main()方法的参数
配置历史服务器
  1. 修改 spark-defaults.conf.template 文件名为 spark-defaults.conf

    mv spark-defaults.conf.template spark-defaults.conf
    
  1. 修改 spark-default.conf 文件,配置日志存储路径

    spark.eventLog.enabled true
    spark.eventLog.dir hdfs://hadoop102:8020/directory
    

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

如果不存在,需要进行创建:

sbin/start-dfs.sh
hadoop fs -mkdir /director
  1. 修改 spark-env.sh 文件, 添加日志配置

    export SPARK_HISTORY_OPTS="
    -Dspark.history.ui.port=18080 
    -Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory 
    -Dspark.history.retainedApplications=30"
    
  2. 分发配置文件

    xsync conf
    
  1. 重新启动集群和历史服务

    sbin/start-all.sh
    sbin/start-history-server.sh
    
  2. 重新执行任务

    bin/spark-submit 
    --class org.apache.spark.examples.SparkPi 
    --master spark://hadoop102:7077 
    ./examples/jars/spark-examples_2.12-3.0.0.jar 
    10
    
  3. 查看历史服务:http://hadoop102:18080

    配置高可用(HA)

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

集群规划:

hadoop02hadoop103hadoop04
Master Zookeeper WorkerMaster Zookeeper WorkerZookeeper Worker
  1. 停止集群

    sbin/stop-all.sh
    
  1. 启动zookeeper

    zk.sh start //这儿是利用脚本命令启动,如果没有写脚本,可以在zookeeper目录下用下面命令
    xstart zk
    
  2. 修改 spark-env.sh 文件添加如下配置

注释如下内容:
#SPARK_MASTER_HOST=hadoop102
#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=hadoop102,hadoop103,hadoop104
-Dspark.deploy.zookeeper.dir=/spark"
  1. 分发配置文件

    xsync conf/
    
Yarn 模式

上述的部署模式为独立部署(Standalone)模式,独立部署模式由 Spark 自身提供计算资源,无需其他框架提供资源。这 种方式降低了和其他第三方资源框架的耦合性,独立性非常强。Spark 主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,因此更多的还是利用Yarn模式。

  1. 修改 hadoop 配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml, 并分发


    yarn.nodemanager.pmem-check-enabled
    false



    yarn.nodemanager.vmem-check-enabled
    false

  1. 修改 conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置

    export JAVA_HOME=/opt/module/jdk1.8.0_144	//替换成自己的jdk目录
    YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop		//替换成自己打包hadoop目录
    
  1. 启动 HDFS 以及 YARN 集群
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/961691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号