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”,即可看到监控界面,界面记录了作业信息,包括已经运行完成的作业的信息和正在运行的作业信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“开挂”的WAAP全站防护是云海驰骋的必备

何为攻击? 网络和应用是攻击的两大阵地 网络攻击像僵尸:简单、粗暴、让人猝不及防 显著特征:流量大,并发高 应用攻击像幽灵:复杂、神秘、让人摸不着头脑 显著特征:流量小、隐蔽强 攻击不像“馅饼”&…

OpenHarmony实战开发-组件复用实践。

若开发者的应用中存在以下场景,并成为UI线程的帧率瓶颈,应该考虑使用组件复用机制提升应用性能: 滑动场景下对同一类自定义组件的实例进行频繁的创建与销毁。反复切换条件渲染的控制分支,且控制分支中的组件子树结构比较复杂。 …

SpringBoot3 + Vue3 + Element-Plus + TS 实现动态二级菜单级联选择器

SpringBoot3 Vue3 Element-Plus TS 实现动态二级菜单选择器 1、效果展示1.1 点击效果1.2 选择效果1.3 返回值1.4 模拟后端返回数据 2、前端代码2.1 UnusedList.vue2.2 goodsType.ts2.3 http.ts 3、后端代码3.1 GoodsCategoryController.java3.2 GoodsCategoryService.java3.…

读后感-有效沟通

司内的学习已开展8期,内容主要以如何沟通为主,这里将根据个人的学习体会,对所学内容进行梳理与整合,以期更好地吸收和应用所学知识。 沟通是一门技术,其轨迹可循。自来熟的态度,一上来便滔滔不绝地发表言论…

ThingsBoard系统层配置邮件发送

1、前沿 2、案例 1、管理员的身份进行登录 2、选择账户,并将邮箱更改为自己的邮箱,并保存配置 3、退出账号,使用邮箱进行登录,密码还是跟之前一样 4、登录后选择设置-发送邮件 5、登录邮箱申请邮箱的密钥 ​7、 按照图片填…

Mysql The last packet sent successfully to the server was 0 milliseconds ago.

项目启动后,报错,但是我的navicat 数据库连接工具是连接上的,没有问题的,但是程序就是连接不上。端口放开了,防火墙也放开了 先说问题:是网络问题, 如何解决:因为我的机子上又跑了…

计算机网络——数据链路层(介质访问控制)

计算机网络——数据链路层(介质访问控制) 介质访问控制静态划分信道动态划分信道ALOHA协议纯ALOHA(Pure ALOHA)原理特点 分槽ALOHA(Slotted ALOHA)原理特点 CSMA协议工作流程特点 CSMA-CD 协议工作原理主要…

RabbitMQ学习记录

核心概念 Brocker:消息队列服务器实体 Exchange(消息交换机):它指定消息按什么规则,路由到哪个队列。 Queue(消息队列载体):每个消息都会被投入到一个或多个队列。 Binding(绑定):它的作用就是把exchange和queue按…

电磁兼容(EMC):静电放电(ESD)抗扰度试验深度解读(三)

目录 1. 静电抗扰度试验标准试验程序定制的目的 2. 环境条件对充电量的影响 3. 环境级别与空气和接触放电的关系 4. 试验等级的选择 1. 静电抗扰度试验标准试验程序定制的目的 保护设备免受静电放电影响的问题对制造厂和用户来说都是相当重要的。 随着微电子元件的广泛应用…

gradle安装和部署

准备工作 下载地址:https://gradle.org/releases/ 安装和配置环境变量 将压缩包解压到/usr/local/目录下 unzip gradle-8.7-bin.zip -d /usr/local/找到gradle的安装目录/usr/local/gradle-8.7 编辑/etc/vi /etc/profileprofile配置环境变量(这是ce…

《强势》如何在工作、恋爱和人际交往中快速取得主导权? - 三余书屋 3ysw.net

强势:如何在工作、恋爱和人际交往中快速取得主导权? 大家好,今天我们要解读的是一本名为《强势》的书籍。我将花费大约20分钟的时间,为您详细讲解这本书的精华内容,包括如何在家庭关系、职场关系和朋友关系中迅速取得…

Flowable 基本用法

一. 什么是Flowable Flowable 是一个基于 Java 的开源工作流引擎,用于实现和管理业务流程。它提供了强大的工作流引擎和一套丰富的工具,使开发人员能够轻松地建模、部署、执行和监控各种类型的业务流程。Flowable 是 Activiti 工作流引擎的一个分支&am…

项目7-音乐播放器4+喜欢/收藏音乐

1.喜欢/收藏音乐模块设计 1.1 请求响应模块设计 请求: { post, /lovemusic/likeMusic data: id//音乐id } 响应: { "status": 0, "message": "点赞音乐成功", "da…

环境监测系统--------MQ系列气体检测模块驱动教程(保姆级教程)

⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩在环境检测中我们经常会用到检测气体的传感器,检测乙醇、甲烷、一氧化碳、氢气等等,博主呕心沥血对MQ系列传感器做一个史上最详细的使用教程…

UML类图详解

UML类图结构解析 UML类图是一种结构图,用于描述系统的静态结构。它主要用于展示系统中的类(class)、接口(interface)、协作(collaboration)、数据类型(data type)等以及…

CH341A/B USB转USART/I2C/SPI介绍

CH341A/B USB转USART/I2C/SPI介绍 📍CH341官方文档:https://www.wch.cn/downloads/CH341DS2_PDF.html CH341A/B是一个USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。 🍁芯片封装&a…

翻译 《The Old New Thing》 - Returning values from a dialog procedure

Returning values from a dialog procedure - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20031107-00/?p41923 Raymond Chen 2003年11月7日 简要 这篇文章由Raymond Chen撰写,解释了对话框过程如何从Windows编程中返回值。他…

如何实现在 Windows 上运行 Linux 程序?

在Windows 上运行Linux程序是可以通过以下几种方法实现: 1.使用 Windows Subsystem for Linux (WSL): WSL是微软提供的功能,可以在Windows 10上运行一个完整的Linux系统。用户可以在Microsoft Store中安装所需的 在开始前我有一些资料,是我根据网友给的…

2024团体程序设计天梯赛L1-103 整数的持续性

题目链接L1-103 整数的持续性 #include<iostream> #include<stdio.h> #include<algorithm> using namespace std; struct node{int x;int d; }p[2000]; bool cmp(node a, node b) {if (a.d b.d) return a.x < b.x;return a.d>b.d; } int cnt, cntt; v…

密钥密码学(三)

原文&#xff1a;annas-archive.org/md5/b5abcf9a07e32fc6f42b907f001224a1 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十六章&#xff1a;三次通行协议 本章内容包括 基于指数的三次通行协议 基于矩阵乘法的三次通行协议 基于双边矩阵乘法的三次通行协议 …