文章目录

  • Standalone 模式
    • 集群规划
    • 解压缩文件
    • 修改配置文件
    • 启动集群
    • 提交参数说明
    • 配置历史服务
    • 配置高可用(HA)

Standalone 模式

local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,这里我们来看看只使用 Spark 自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式。Spark 的 Standalone 模式体现了经典的 master-slave 模式。

集群规划

hadoop102 hadoop103 hadoop104
Spark worker master worker worker

解压缩文件

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

[root@hadoop102 software]# tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
[root@hadoop102 software]# cd /opt/module
[root@hadoop102 module]# mv spark-3.0.0-bin-hadoop3.2 spark-standalone

修改配置文件

1) 进入解压缩后路径的 conf 目录,修改 slaves.template 文件名为 slaves

[root@hadoop102 conf]# mv slaves.template slaves

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

hadoop102
hadoop103
hadoop104

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

[root@hadoop102 conf]# mv spark-env.sh.template spark-env.sh

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

export JAVA_HOME=/opt/module/jdk1.8.0_212/
SPARK_MASTER_HOST=hadoop102
SPARK_MASTER_PORT=7077

注意:7077 端口,相当于 hadoop3 内部通信的 8020 端口,此处的端口需要确认自己的 Hadoop配置

5)分发 spark-standalone 目录

xsync spark-standalone

启动集群

1) 执行脚本命令:

[root@hadoop102 spark-standalone]#

2)查看 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 表示程序的入口参数,用于设定当前应用的任务数量

执行任务时,会产生多个 Java 进程

执行任务时,默认采用服务器集群节点的总核数,每个节点内存 1024M。

提交参数说明

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

bin/spark-submit \
--class <main-class>
--master <master-url> \
... # other options
<application-jar> \
[application-arguments]
参数 解释 可选值举例
–class Spark 程序中包含主函数的类
–master Spark 程序运行的模式(环境) 模式:local[*]、spark://linux1:7077、Yarn
–executor-memory 1G 指定每个 executor 可用内存为 1G 符合集群内存配置即可,具体情况具体分析。
–total-executor-cores 2 指定所有executor使用的cpu核数为 2 个 符合集群内存配置即可,具体情况具体分析。
–executor-cores 指定每个executor使用的cpu核数 符合集群内存配置即可,具体情况具体分析。
application-jar 打包好的应用 jar,包含依赖。这个 URL 在集群中全局可见。 比 如 hdfs:// 共享存储系统,如果是file:// path,那么所有的节点的path 都包含同样的 jar 符合集群内存配置即可,具体情况具体分析。
application-arguments 传给 main()方法的参数 符合集群内存配置即可,具体情况具体分析。

配置历史服务

由于 spark-shell 停止掉后,集群监控 hadoop102:4040 页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况。

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

[root@hadoop102 conf]# mv spark-defaults.conf.template spark-defaults.conf

2)修改 spark-default.conf 文件,配置日志存储路径

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

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

[root@hadoop102 conf]# start-dfs.sh
[root@hadoop102 conf]# hadoop fs -mkdir /directory

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

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

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

4)分发配置文件

[root@hadoop102 spark-standalone]# xsync conf

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

[root@hadoop102 spark-standalone]# sbin/start-all.sh
[root@hadoop102 spark-standalone]# sbin/start-history-server.sh

6)重新执行任务

[root@hadoop102 spark-standalone]# bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

7) 查看历史服务:http://linux1:18080

配置高可用(HA)

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

hadoop102 hadoop103 hadoop104
Spark Master ,Zookeeper, Worker Master ,Zookeeper, Worker Master ,Zookeeper, Worker

1)停止集群

[root@hadoop102 spark-standalone]#  sbin/stop-all.sh

2) 启动 Zookeeper

[root@hadoop102 spark-standalone]# zk.sh start

3) 修改 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"

4) 分发配置文件

[root@hadoop102 spark-standalone]# xsync conf/

5) 启动集群

[root@hadoop102 spark-standalone]# sbin/start-all.sh


6)启动 hadoop103 的单独 Master 节点,此时 hadoop103 节点 Master 状态处于备用状态

[root@hadoop103 spark-standalone]# sbin/start-master.sh

7) 提交应用到高可用集群

[root@hadoop102 spark-standalone]# bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077,hadoop103:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

8)停止 hadoo102的 Master 资源监控进程

9) 查看 hadoop103 的 Master 资源监控 Web UI,稍等一段时间后,hadoop103 节点的 Master 状态 提升为活动状态

Spark 环境 Standalone 模式相关推荐

  1. Spark 部署 Standalone 模式

    Spark 部署 Standalone 模式 解压缩文件 修改配置文件 启动集群 Web UI 界面 提交应用 提交参数说明 配置历史服务 配置日志存储路径 添加日志配置 重启动 Hadoop 集群 ...

  2. 008 Spark中standalone模式的HA(了解,知道怎么配置即可)

    standalone也存在单节点问题,这里主要是配置两个master. 1.官网 2.具体的配置 3.配置方式一(不是太理想) 这种知识基于未来可以重启,但是不能在宕机的时候提供服务. 方式一:Sin ...

  3. Spark环境搭建Standalone模式

    2.4  Standalone模式 在Standalon模式中,Spark集群由Master节点和Worker节点构成,使用内置的Standalon框架进行资源管理.Spark程序通过与Master节 ...

  4. Spark的安装(Standalone模式,高可用模式,基于Yarn模式)

    目录 spark的Standalone模式安装 一.安装流程 1.将spark-2.2.0-bin-hadoop2.7.tgz  上传到 /usr/local/spark/ 下,然后解压 2.进入到c ...

  5. Spark运行模式Standalone 模式

    Standalone 模式 Standalone 模式概述 standalone n. 脱机; adj. 单独的,独立的; local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到 ...

  6. Spark集群环境搭建(standalone模式)

    Spark集群环境搭建(standalone模式) 1. 实验室名称: 2. 实验项目名称: 3. 实验学时: 4. 实验原理: 5. 实验目的: 6. 实验内容: 7. 实验器材(设备.虚拟机名称) ...

  7. 【原】Spark Standalone模式

    Spark Standalone模式 安装Spark Standalone集群 手动启动集群 集群创建脚本 提交应用到集群 创建Spark应用 资源调度及分配 监控与日志 与Hadoop共存 配置网络 ...

  8. 深入理解Spark 2.1 Core (六):Standalone模式运行的原理与源码分析

    我们讲到了如何启动Master和Worker,还讲到了如何回收资源.但是,我们没有将AppClient是如何启动的,其实它们的启动也涉及到了资源是如何调度的.这篇博文,我们就来讲一下AppClient ...

  9. 深入理解Spark 2.1 Core (五):Standalone模式运行的原理与源码分析

    概述 前几篇博文都在介绍Spark的调度,这篇博文我们从更加宏观的调度看Spark,讲讲Spark的部署模式.Spark部署模式分以下几种: local 模式 local-cluster 模式 Sta ...

最新文章

  1. 使用AD5933分析复阻抗的时钟频率设置
  2. PMCAFF | 产品经理的招聘要求调研分析
  3. android support design library eclipse,Eclipse下使用Android Design Support Library中的控件
  4. 美学设计评价_死亡的孩子无法使用的设计美学
  5. [Leetcode][第99题][JAVA][恢复二叉搜索树][中序遍历]
  6. php 两个二维数组对比,php比较两二维数组求大神指教
  7. Spring Boot 2.0---使用Swagger2构建强大的API文档
  8. c语言从入门到秃头表情包,c语言从入门到放弃表情包 - c语言从入门到放弃微信表情包 - c语言从入门到放弃QQ表情包 - 发表情 fabiaoqing.com...
  9. iOS后台唤醒实战:微信收款到账语音提醒技术总结
  10. paypal tp 对接_PayPal支付接入
  11. 第 11 章 基于小波技术进行图像融合--MATLAB人工智能深度学习模块
  12. 第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!
  13. 微信公众号接入H5支付
  14. 如何在远程工作中保持企业文化的凝聚力
  15. 大小端交换的程序_数据库在小程序云开发中的应用
  16. 哈工大软件构造课程知识点总结(一)
  17. SitePoint新字体背后的故事:Roboto
  18. “node“不是内部或外部命令,也不是可运行的程序 或批处理文件
  19. miniui实现多附件上传
  20. 树莓派实现摄像头拍照

热门文章

  1. seo扫老域名工具软件-老域名软件-扫域名工具
  2. 【微服务】网站安全认证架构演进
  3. gloomy-研究CreateProcess--beiyu的blog
  4. 人类学--中国古人类学(先秦时期的人种类型)
  5. 合理的睡眠时间很重要(转)
  6. vue中$el等属性
  7. 关于腾讯云主机遭遇勒索病毒RANSOMWARE(aariz@airmail.cc)的解决办法
  8. 时间秒数转为hhmmss格式
  9. 密码找回API第三方接口安全
  10. SpringSecurity整合OAuth2.0