Spark集群的搭建

1.1搭建Spark集群

Spark集群环境可分为单机版环境、单机伪分布式环境和完全分布式环境。本节任务是学习如何搭建不同模式的Spark集群,并查看Spark的服务监控。读者可从官网下载Spark安装包,本文使用的是spark-2.0.0-bin-hadoop2.7.gz。

1.1.1搭建单机版集群

单机版环境可以支持对Spark的应用程序测试工作,对于初学者而言是非常有益。

搭建单机版Spark集群步骤如下:

1.在Spark官网选择对应版本的Spark安装包并下载至Windows本地路径下。

2.将Spark安装包上传至linux虚拟机的/opt目录下。

3.将Spark安装包解压至/usr/local/src/目录下。

1)解压Spark安装包

tar -zxf /opt/software/spark-2.0.0-bin-hadoop2.7.gz -C /usr/local/src/

2)进入Spark安装目录的/bin目录,使用“SparkPi”计算Pi值

#进入目录
cd /usr/local/src/spark/bin/
#执行如下命令,其中2是指两个并行度
./run-example SparkPi 2

 使用“SparkPi”计算Pi值的结果

 

1.1.2搭建单机伪分布式集群

Spark单机伪分布式集群指的是在一台机器上既有Master进程,又有Worker进程。Spark单机伪分布式集群可在Hadoop伪分布式环境基础上进行搭建。读者可自行了解如何搭建Hadoop伪分布式集群,本文不做介绍。搭建Spark单机伪分布式集群的步骤如下:

(1)将Spark安装包解压至Linux的/usr/loca/src/目录下。

(2)进入解压后的Spark安装目录,对安装包进行改名

mv spark-2.0.0-bin-hadoop2.7 spark

(3)进入Spark的/conf目录下,复制spark-env.sh.template文件并重命名为spark-env.sh。

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

(4)打开spark-env.sh文件,在文件末尾添加代码

export JAVA_HOME=/usr/local/src/jdk
export HADOOP_HOME=/usr/lcoal/src/hadoop
export HADOOP_CONF_DIP=/usr/local/src/hadoop/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_LOCAL_USR_IP=master
参数解释
JAVA_HOMEJava的安装路径
HADOOP_HOMEHadoop的安装路径
HADOOP_CONF_DIPHadoop配置文件的路径
SPARK_MASTER_IPSpark主节点的IP地址或主机名
SPARK_LOCAL_USR_IPSpark本地IP地址或主机名

(5)切换到Spark安装目录的/sbin目录下,启动Spark集群

[root@master sbin]# cd /usr/local/src/spark/sbin/[root@master sbin]# ./start-all.sh

 通过命令“jps”查看进程,如果既有Master进程又有Worker进程,那么说明Spark集群启动成功

(6)切换至Spark安装包的/bin目录下,使用“SparkPi”计算Pi值

[root@master bin]# ./run-example SparkPi 2

由于计算Pi的值时采用随机数,因此每次计算结果也会有差异

1.1.3搭建完全分布式集群

Spark完全分布式集群使用主从模式,即其中一台机器作为主节点master,其他的几台机器作为子节点slave。本文使用的Spark完全分布式共有三个节点,分别是一个主节点和2个子节点

Spark完全分布式集群是在Hadoop完全分布式集群的基础上进行搭建的。读者可自行了解如何搭建Hadoop完全分布式集群,本文不做介绍

(1)在前面的基础之上切换至Spark安装目录下的/conf目录下,并打开spark-env.sh文件,并添加如下代码:

#将原来伪分布式集群添加上去的那几行代码删掉从新添加下面代码,防止后面发生影响export JAVA_HOME=/usr/local/src/jdk
export HADOOP_CONF_DIP=/usr/local/src/hadoop/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=512m
export SPARK_WORKER_CORES=1
export SPARK_EXECUTOR_MEMORY=512m
export SPARK_EXECUTOR_CORES=1
export SPARK_WORKER_INSTANCES=1

 spark-env.sh文件的配置参数解释

参数解释
JAVA_HOMEJava的安装路径
HADOOP_CONF_DIRHadoop配置文件的路径
SPARK_MASTER_IPSpark主节点的IP地址或主机名
SPARK_MASTER_PORTSpark主节点的端口号
SPARK_WORKER_MEMORY工作(worker)节点能给予Executor的内存大小
SPARK_WORKER_CORES每个节点可以使用的内核数
SPARK_EXECUTOR_MEMORY每个Executor内存大小
SPARK_EXECUTOR_CORESExecutor的内核数
SPARK_WORKER_INSTANCES每个节点的Worker进程数

(2)配置Workers文件。复制Workers.template文件并重命名为Workers,打开Workers文件删除原有内容,并添加如下代码,每一行代表一个子节点的主机名,这里的workers文件名为,slaves.template

slave1
slave2

(3)配置spark-defaults.conf文件。复制spark-defaults.conf.template文件并重命名为spark-defaults.conf,打开spark-defaults.conf文件,并添加如下代码:

spark.master                     spark://master:7077
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://master:8020/spark-logs
spark.history.fs.logDirectory    hdfs://master:8020/spark-logs

spark-defaults.conf文件的配置参数解释

参数解释
spark.masterSpark主节点所在机器及端口,默认写法是spark://
spark.eventLog.enabled是否打开任务日志功能,默认为false,既不打开
spark.eventLog.dir任务日志默认存放位置,配置一个HDFS路径即可
spark.history.fs.logDirectory存放历史应用日志文件目录

(4)在主节点(master节点)中,将配置好的Spark安装目录远程复制至子节点(slave1,slave2节点)的/usr/local/src/目录下,代码如下:

[root@master src]# scp -r /usr/local/src/spark root@slave1:/usr/local/src/
[root@master src]# scp -r /usr/local/src/spark root@slave2:/usr/local/src/

(5)启动Spark集群前,需要先启动Hadoop集群,并创建/spark-logs目录,如代码:

#启动Hadoop集群
cd /usr/local/src/hadoop
./sbin/start-dfs.sh
./sbin/start-yarn.sh
./sibn/mr-jobhistory-daemon.sh start historyserver
#创建/spark-logs目录
hdfs dfs -mkdir /spark-logs

(6)切换至Spark安装目录的/sbin目录下,启动Spark集群

cd /usr/local/src/spark/sbin/./start-all.sh
./start-history-server.sh

(7)通过命令jps查看进程,开启Spark集群后,master节点增加了Master进程,而子节点则增加了Worker进程。

Spark集群启动成功后,打开浏览器访问“http://master:8080”,可进入主节点的监控界面。其中master指代主节点的IP地址

Hisory Server的监控端口为18080端口,打开浏览器访问“http://master:18080”,即可看到监控界面,界面记录了作业信息,包括已经运行完成的作业的信息和正在运行的作业信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——进程基本概念中篇

Linux——进程基本概念中篇 文章目录 Linux——进程基本概念中篇一、通过系统调用创建进程——fork1.1 fork的理解1.2 fork的返回值 二、进程状态2.1 运行状态2.2 睡眠状态和休眠状态2.3 停止状态和死亡状态2.4 僵尸进程2.5 孤儿进程2.6 前台和后台进程 三、进程优先级3.1 查看…

【QT教程】QT6物联网应用

QT6物联网应用 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费Q…

大模型入门相关文章

1.了解国内外大模型发展现状188个大模型和20个开源基础模型,《2023大模型产业发展白皮书》全面解析国内外大模型发展情况 - 知乎 (zhihu.com) 2.垂直领域,美妆大模型 关于懂美学的视觉大模型,我们问了美图 21 个问题 - 知乎 (zhihu.com) 3…

在C语言中如何找到字符串的长度

在C语言中处理字符串时,你需要知道如何找到它们的长度。 在许多情况下,找到C语言中字符串的长度都是至关重要的。 你可能需要执行字符串操作,而许多字符串操作函数都需要字符串的长度作为参数。你可能还需要验证用户输入、比较两个字符串&a…

一文读懂Partisia Blockhain:兼顾去中心化、安全性与可扩展性

“Partisia Blockhain 解决了区块链领域长期存在的问题,其兼顾了去中心化、安全性以及可扩展性” Partisia Blockchain 是一个具有独特零知识证明预言机以及分片解决方案的 Layer1,解决了困扰整个区块链行业的问题。 目前,多样化的区块链层出…

个人开发微信小程序?我来劝退!

为什么小程序那么受欢迎? 相比传统app,小程序即点即用,免下载安装,这是小程序最明显的优势 但使得小程序真正能火爆,让众多开发者喜欢的原因,还是其强大的分享能力和多端互通能力。寄生与微信这么一个聊天…

SRIO系列-基本概念及IP核使用

参考:串行RapidIO: 高性能嵌入式互连技术 | 德州仪器 SRIO协议技术分析 - 知乎 PG007 目录 一、SRIO介绍 1.1 概要 1.2 SRIO与传统互联方式的比较 1.3 串行SRIO标准 1.4 SRIO层次结构: 1.4.1 逻辑层 1.4.2 传输层协议 1.4.3 物理层 二、Xilinx…

全量知识系统 程序详细设计 之“因果关系模型”(QA百度文库)

Q1. 今天聊聊全量知识系统(简称“全知系统”)中 对“因果”的理解。(地位、意义和作用) 在全量知识系统(全知系统)中,“因果”是一个核心概念,具有极其重要的地位、意义和作用。 首…

BADI-AC_DOCUMENT-交货单过账科目替代

BADI-AC_DOCUMENT-交货单过账科目替代 一、业务场景 事务代码VL02N/VL22N及其他交货单过账事务,在交货单过账生成会计凭证的时候对科目进行替代 二、BADI增强:AC_DOCUMENT 这个BADI理论上可以处理很多的会计凭证科目替代,不止是交货单过账…

服务注册与发现Eureka、Zookeeper、Consul 三个注册中心的异同点(CAP理论)

Eureka Eureka是由Netflix开源的一个服务注册和发现组件,它主要用于构建高可用、分布式系统的基础设施中。Eureka的服务器端被称为Eureka Server,客户端则是那些需要注册的服务。Eureka具有以下特点: 高可用性:Eureka支持多节点…

java:Java中的String详解

目录 前言: String类的常用方法 1.构造方法: 2.字符串比较: 3.字符串查找: 4.字符串转化: StringBuffer和StringBuilder: 强大的字符串处理工具 1. StringBuffer和StringBuilder的作用和区别 2. StringBuilder…

ModuleNotFoundError: No module named google.protobuf 亲测有效

真的无语了每次都是环境bug,这次又遇上了ModuleNotFoundError: No module named google.protobuf 我先尝试了 pip uninstall protobuf pip uninstall google pip install google pip install protobuf接着还是没起色,我试了试 conda install -c anaco…

探索通过GPT和云平台搭建网安实战培训环境

项目背景 网络安全是一个不断演变的领域,面临着日益复杂的挑战和不断扩大的威胁。数字化时代,随着勒索攻击、数据窃取、网络钓鱼等频频出现,网络攻击的威胁指数和影响范围进一步增加,如何防范网络攻击,确保数据安全&a…

测试技术的发展趋势是什么

测试技术的发展趋势是在不断提高灵敏度、精确度和可靠性的基础上,向小型化、非接触化、多功能化、智能化和网络化方向发展。 测试人员技能需求的转变:测试人员需要具备更多的技能,如编程、脚本编写、数据分析等,以适应自动化和AI…

HTML5+CSS3小实例:菜单按钮的三种切换动画

实例:菜单按钮的三种切换动画 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initia…

漂亮的个人主页源码

源码介绍 漂亮的个人主页源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果截图 源码下载 漂亮的个人主页源码

原创: 重构证据定义以消解贝叶斯确证逻辑的内在矛盾

摘要&#xff1a;现行的贝叶斯确证逻辑沿袭传统确证逻辑的证据观&#xff0c;不考虑经验事实与待确证假说之间逻辑关系的确证作用&#xff0c;因而存在着旧证据问题、非相干确证问题、乌鸦悖论等内在矛盾。依据科学方法论重新构筑证据的逻辑表达&#xff0c;厘清确证的量化过程…

【正则表达式】正则表达式基本语法元素

目录 字符类量词边界匹配逻辑和分组转义和特殊字符验证正则表达式是否能够成功提取数据 字符类 .&#xff1a;匹配除换行符之外的任何单个字符。 [abc]&#xff1a;匹配方括号内的任何字符。 [^abc]&#xff1a;匹配不在方括号内的任何字符。 [a-z]&#xff1a;匹配任何小写字…

Linux安装 swoole

第一步:去官网下载swoole扩展包 ,下载地址&#xff1a; https://github.com/swoole/swoole-src/releases,下载后放入服务器根目录即可。 第二步:cd 进到该目录。执行命令/www/server/php/71/bin/phpize(注:当时我php版本是7.1)&#xff0c;该命令执行成功后应该提示如下: Con…

DZY Loves Chemistry (并查集)

//新生训练 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <queue> using namespace std; bool a[60][60]; bool vis[60]; int n; long long int cnt; void bfs(int x) {int y;queue<int> q;v…