Spark集群安装部署

2023-11-15

目录

一.环境准备

二.安装步骤

三.使用Standalone模式

四.使用Yarn模式 


一.环境准备

        由于Spark仅仅是一种计算机框架,不负责数据的存储和管理,因此,通常都会将Spark和Hadoop进行统一部署,由Hadoop中的HDFS,HBase等组件负责数据的存储管理,Spark负责数据计算。

安装Spark集群之前,需要安装Hadoop环境,我的配置环境如下:

  • Linux系统:CentOS_6.7 版本
  • Hadoop:3.1.3 版本
  • JDK:1.8 版本
  • Spark:3.1.1 版本

二.安装步骤

        Spark部署模式分为Local模式(单机模式)和集群模式,集群模式又分为Standalone模式,Yarn模式和Mesos模式。本文章主要阐述spark集群配置,Standalone模式和Yarn模式的使用

1.下载Spark安装包

下载地址:http://archive.apache.org/dist/spark/

 选择自己需要的版本下载,由于我的hadoop版本是3.x,所以我下载的是第二个spark-3.1.1-bin-hadoop3.2.tgz

2.解压Spark安装包

将下载的安装包上传到主节点master的/opt/software目录,然后解压到/opt/servers目录,命令如下:

[root@master ~]# tar -zxvf /opt/software/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/servers/

为了方便,将解压后的目录重命名为spark,命令如下:

[root@master ~]# mv /opt/servers/spark-3.1.1-bin-hadoop3.2/ /opt/servers/spark

3.修改配置文件

进入spark/conf目录修改Spark的配置文件,将spark-env.sh.template配置模板文件复制一份并命名为spark-env.sh,命令如下:

[root@master ~]# cd /opt/servers/spark/conf/
[root@master conf]# cp ./spark-env.sh.template ./spark-env.sh

 修改spark-env.sh文件,命令如下:

[root@master conf]# vi ./spark-env.sh

#添加以下内容

export JAVA_HOME=/opt/servers/java
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077

export YARN_CONF_DIR=/opt/servers/hadoop/etc/hadoop
export HADOOP_CONF_DIR=/opt/servers/hadoop/etc/hadoop

复制workers.template文件,并重命名为workers,命令如下:

[root@master conf]# cp ./workers.template ./workers 

 指定Spark集群中的从节点IP

[root@master conf]# vi ./workers

slave1

slave2

 4.分发文件

修改完成配置文件后,将spark目录分发至slave1和slave2节点,命令如下:

[root@master ~]# scp -r /opt/servers/spark/ slave1:/opt/servers/

[root@master ~]# scp -r /opt/servers/spark/ slave2:/opt/servers/

至此,Spark集群配置就完成了。

三.使用Standalone模式

首先要启动spark集群,spark集群的启动方式和启动hadoop集群方式类似,直接使用spark/sbin/start-all.sh脚本即可,在spark根目录下执行:

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

 启动完成后,使用jps命令查看进程

 访问Spark管理界面 https://master:8080 来查看集群状态

测试官方案例

Spark集群部署完毕,可以使用Spark官方示例SparkPi体验Spark集群提交任务的流程,首先进入到spark目录,命令如下:

[root@master spark]# ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 1G --total-executor-core1 examples/jars/spark-examples_2.12-3.1.1.jar 10

四.使用Yarn模式 

Yarn模式不需要启动spark集群,只需要启动hadoop集群即可,在启动hadoop集群之前,需要在yarn-site.xml文件关闭内存检查,否则在测试官方案例时可能会报错。

[root@master ~]# cd /opt/servers/hadoop/etc/hadoop/
[root@master hadoop]# vi ./yarn-site.xml

#添加以下内容

<property>
  <name>yarn.nodemanager.pmem-check-enabled</name>
  <value>false</value>
</property>
<property>
  <name>yarn.nodemanager.vmem-check-enabled</name>
  <value>false</value>
</property>

添加后需要将此文件分发至slave1,slave2

[root@master hadoop]# scp -r ./yarn-site.xml slave1:/opt/servers/hadoop/etc/hadoop/

[root@master hadoop]# scp -r ./yarn-site.xml slave2:/opt/servers/hadoop/etc/hadoop/

分发完成后,在主节点启动hadoop集群

 [root@master hadoop]# start-all.sh

启动后测试spark官方案例

  • --deploy-mode 指定部署模式,默认是客户端模式
  • client 客户端模式,运行结果会直接打印在控制台
  • cluster 集群模式

 [root@master spark]# ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client --driver-memory 1G --executor-memory 1G --executor-cores 1 examples/jars/spark-examples_2.12-3.1.1.jar 10

[root@master spark]# ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --driver-memory 1G --executor-memory 1G --executor-cores 1 examples/jars/spark-examples_2.12-3.1.1.jar 10

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark集群安装部署 的相关文章

  • 如何在 Hive 中将字符串转换为毫秒时间戳

    我有一个字符串 20141014123456789 它代表一个毫秒时间戳 我需要将其转换为 Hive 中的时间戳 0 13 0 而不丢失毫秒 我尝试了这个 但 unix timestamp 返回一个整数 所以我丢失了毫秒 from unix
  • 如何在linux中的hdfs超级组中添加用户? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在研究 hdfs 然后我发现某些内容没有为超级用户执行权限检查 如果我的 linux 用户是 sandy 并且我想将 sandy 添加
  • 映射减少计数示例

    我的问题是关于mapreduce programming in java 假设我有 WordCount java 示例 一个标准mapreduce program 我希望map函数收集一些信息 并返回形成如下的reduce函数map
  • 如何为 HDFS 递归列出子目录?

    我在 HDFS 中递归创建了一组目录 如何列出所有目录 对于普通的 UNIX 文件系统 我可以使用以下命令来做到这一点 find path type d print 但我想为 HDFS 得到类似的东西 递归列出目录内容hadoop dfs
  • 如何在hadoop/map reduce中创建固定行数的输出文件?

    假设我们有 N 个具有不同行数的输入文件 我们需要生成输出文件 使得每个输出文件恰好有 K 行 最后一个输出文件可以有 是否可以使用单个 MR 作业来完成此操作 我们应该打开文件以便在reducer中显式写入 输出中的记录应该被打乱 tha
  • 远程执行hadoop作业时出现异常

    我正在尝试在远程 hadoop 集群上执行 Hadoop 作业 下面是我的代码 Configuration conf new Configuration conf set fs default name hdfs server 9000 c
  • 当与curl一起使用--negotiate时,是否需要keytab文件?

    The 文档 http hadoop apache org docs stable hadoop project dist hadoop hdfs WebHDFS html描述如何连接到 kerberos 安全端点显示以下内容 curl i
  • Hadoop setInputPathFilter错误

    我正在使用 Hadoop 0 20 2 无法更改 并且我想向我的输入路径添加一个过滤器 数据如下 path1 test a1 path1 test a2 path1 train a1 path1 train a2 我只想处理所有文件trai
  • Cat 文件与 HDFS 中的模式不匹配?

    我正在尝试 cat 与 hadoop HDFS 中的以下模式不匹配的文件 hdfs dfs cat gz 如何捕获所有不以 gz 结尾的文件 编辑 抱歉 但我需要在 Hadoop 中管理文件 显然 hdfs 附带的命令非常少 编辑2 所有文
  • 一个目录下可以有两个oozieworkflow.xml文件吗?

    一个目录下可以有两个oozieworkflow xml文件吗 如果是这样 我如何指示 oozie runner 运行哪一个 您可以有两个工作流程文件 只需为它们指定唯一的名称 然后您可以通过设置oozie wf application pa
  • 在 Hadoop 中按文件中的值排序

    我有一个文件 其中每行包含一个字符串 然后是一个空格 然后是一个数字 例子 Line1 Word 2 Line2 Word1 8 Line3 Word2 1 我需要按降序对数字进行排序 然后将结果放入文件中 为数字分配排名 所以我的输出应该
  • 是否值得购买 Mahout in Action 以跟上 Mahout 的速度,或者还有其他更好的来源吗?

    我目前是一个非常随意的用户阿帕奇马胡特 http mahout apache org 我正在考虑购买这本书象夫在行动 http www manning com owen 不幸的是 我很难理解这本书的价值 并且认为它是一本曼宁早期访问计划 h
  • 猪如何过滤不同的对(对)

    我是猪的新手 我有一个 Pig 脚本 它在两个元素之间生成制表符分隔的对 每行一对 例如 John Paul Tom Nik Mark Bill Tom Nik Paul John 我需要过滤掉重复的组合 如果我使用 DISTINCT 我会
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 获取 emr-ddb-hadoop.jar 将 DynamoDB 与 EMR Spark 连接

    我有一个 DynamoDB 表 需要将其连接到 EMR Spark SQL 才能对该表运行查询 我获得了带有发行标签 emr 4 6 0 和 Spark 1 6 1 的 EMR Spark Cluster 我指的是文档 使用 Spark 分
  • 获取行 HBase 的特定列族中的列

    我正在编写一个应用程序 通过 JSP 显示 HBase 中特定表中的数据 我想获取一行的特定列族中的所有列 有什么办法可以做到这一点吗 public String getColumnsInColumnFamily Result r Stri
  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • 如何通过sparkSession向worker提交多个jar?

    我使用的是火花2 2 0 下面是我在 Spark 上使用的 java 代码片段 SparkSession spark SparkSession builder appName MySQL Connection master spark ip
  • Hive - 线程安全的自动递增序列号生成

    我遇到一种情况 需要将记录插入到特定的 Hive 表中 其中一列需要是自动递增的序列号 即在任何时间点都必须严格遵循 max value 1 规则 记录从许多并行的 Hive 作业插入到这个特定的表中 这些作业每天 每周 每月批量运行 现在
  • 伪分布式模式下的 Hadoop。连接被拒绝

    P S 请不要将此标记为重复 Hi 我一直在尝试以伪分布式模式设置和运行 Hadoop 当我运行 start all sh 脚本时 我得到以下输出 starting namenode logging to home raveesh Hado

随机推荐

  • 牛客网Python篇入门编程习题

    目 录 一 输入输出 二 类型转换 三 字符类型 四 列表类型 五 运算符号 六 条件语句 七 循环语句 八 元组类型 九 字典类型 十 内置函数 十一 面向对象 十二 正则表达 本文题库非常适合刚刚接触Python编程的同学 有兴趣的同学
  • STlink V2 烧录器使用教学 【STM32篇】

    STlink V2 是一款支持STM32 STM8 烧录的常规工具 本帖主要讲解STM32 的烧录过程 STM32有2种烧录接口 分别为古老的Jtag接口和目前最常规的SWD接口 由于SWD只需要4条线就能烧录 目前STM32硬件工程师用S
  • Unity使用C#实现简单Scoket连接及服务端与客户端通讯

    简介 网络编程是个很有意思的事情 偶然翻出来很久之前刚开始看Socket的时候写的一个实例 贴出来吧 Unity中实现简单的Socket连接 c 中提供了丰富的API 直接上代码 服务端代码 Thread connectThread 当前服
  • idea 编码扫描插件_4款好用的IDEA插件

    刚开始安装使用的IDEA是没有灵魂的 所以我们要通过插件来给 它注入灵魂 Codota 这是一款代码提示工具 根据你敲击的代码进行提示 这样再敲一些长代码时会方便很多 安装方法 点击file gt settings 选择plugins 搜索
  • 悟空CRM9从零开始搭建详细步骤——肯定成功

    悟空CRM9从零开始搭建详细步骤 欢迎留言 欢迎各位一起加入开源 愿意共享分享学习经验 特别感谢打赏点赞的朋友 我们一起努力分享更多学习经验吧 可参考其他论坛 码云https gitee com wukongcrm 72crm java 悟
  • 用户态--fork函数创建进程

    我们一般使用Shell命令行来启动一个程序 其中首先是创建一个子进程 但是由于Shell命令行程序比较复杂 为了便于理解 我们简化了Shell命令行程序 用如下一小段代码来看怎样在用户态创建一个子进程 include
  • 网上经常看到的冒泡排序的动图如何制作

    今天博主想要和大家分享如何实现动态图 经常在其他博主的文章中可以看到各式各样的动图 搜索一下 网上冒泡排序的动图怎么制作出来 可以看到 很迷 全是告诉冒泡排序的原理 以及动图解析 并没有告知动图是如何制作的 结合博主目前正在学习的前端技术
  • Linux Ubuntu16.04 安装lmdb问题

    LMDB的全称是Lightning Memory Mapped Database 快如闪电的内存映射数据库 它的文件结构简单 包含一个数据文件和一个锁文件 LMDB文件可以同时由多个进程打开 具有极高的数据存取速度 访问简单 不需要运行单独
  • ubuntu下新建txt文档的快捷方式

    进入模板文件夹 Templates 右键打开终端 输入如下命令 sudo gedit txt文档 txt 点击右上角保存 退出 即可通过右键新建txt模板
  • Spring Cache缓存注解

    目录 Spring Cache缓存注解 Cacheable 键生成器 CachePut CacheEvict Caching CacheConfig Spring Cache缓存注解 本篇文章代码示例在Spring Cache简单实现上的代
  • 单片机蓝桥杯——DS1302

    1 原理 对 DS1302的操作就是对其内部寄存器的操作 DS1302内部共有12个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数据位为 BCD 码形式 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存器 及
  • FAT32文件系统学习(1) —— BPB的理解

    FAT 32 文件系统学习 1 本文的目标 本文将通过实际读取一个FAT32格式的U盘来简单了解和学习FAT32文件系统的格式 虽然目前windwos操作系统的主流文件系统格式是NTFS 但是FAT32由于其兼容性原因 还是有一定的学习价值
  • 实验一:linux中Ubuntu安装及shell命令

    实验一 Ubuntu安装及基本shell命令 1 实验目的 1 熟悉虚拟机Ubuntu的安装过程 2 熟悉shell常用命令 3 习惯自己解决Linux环境中的各种问题 4 熟悉Linux系统的特点 包含但不仅限于文件系统 网络配置 终端窗
  • Spark广播变量与累加器

    在之前的文章中 我介绍了flink广播状态 从而了解了flink广播状态实际上就是将一个流广播到下游所有算子之中 在本文中我将介绍spark中类似的概念 为了方便理解 先放张spark应用程序架构图 1 普通spark变量 实际上 如果我们
  • 拍乐云远程视频银行解决方案,为金融数字化注入“新活力”

    中国银行业协会在今年发布的 中国银行业客服中心与远程银行发展报告 2020 中指出 随着数字化融入经济生活的方方面面 我国银行业正在快速迭代升级 用户对银行的数字化服务也提出了更高的要求 一是从被动接受现有服务转向主动要求个性化服务 二是从
  • c++学习之set/multiset容器

    一 set基本概念 简介 所有元素在插入时都会被自动排序 本质 set multiset属于关联式容器 底层结构是用二叉树实现的 set multiset区别 set不允许有重复的元素 multiset可以有重复的元素 二 set构造和赋值
  • 【python学习】-使用sklearn对数据进行线性回归,并绘制回归线

    使用sklearn对数据进行线性回归 并绘制回归线 基本思想 代码实现 在科研工作中 有时得到一组或者几组数据 为了研究数据之间是否存在线性关系 一般会想到拟合数据 看下数据的线性关系 严格地说 是使用线性模型研究两个或多个变量之间规律的一
  • “元宇宙”,究竟离我们有多远?(下)

    目录 引言 由 Z世代 引入 元宇宙 1 黑客帝国 究竟什么才是真实的世界 1 1 故事背景 1 2 矩阵 Matrix 矩阵计算与AI革命 1 3 D j vu 1 4 红蓝药丸 1 5 绿色代码雨 附源码 1 6 元宇宙 2 专访 时隔
  • css控制页面打印(分页、屏蔽不需要打印的对象)

    样式 注 不需要打印的对象要用上 Noprint 样式 需要换页处理的对象要用上 PageNext 样式 因为最后一页不用加入换页符 所以要控制最后一页不要使用该样式 个人感觉用PAGE BREAK BEFORE属性控制第一页要方便一些
  • Spark集群安装部署

    目录 一 环境准备 二 安装步骤 三 使用Standalone模式 四 使用Yarn模式 一 环境准备 由于Spark仅仅是一种计算机框架 不负责数据的存储和管理 因此 通常都会将Spark和Hadoop进行统一部署 由Hadoop中的HD