大数据技术——spark集群搭建

news2024/11/19 14:27:25

目录

spark概述

spark集群搭建

1.Spark安装

2.环境变量配置

3.Spark集群配置

4.启动Spark集群

存在问题及解决方案

请参考以下文章 


spark概述

Spark是一个开源的大数据处理框架,它可以在分布式计算集群上进行高效的数据处理和分析。Spark的特点是速度快、易用性高、支持多种编程语言和数据源。Spark的核心是基于内存的计算模型,可以在内存中快速地处理大规模数据。Spark支持多种数据处理方式,包括批处理、流处理、机器学习和图计算等。Spark的生态系统非常丰富,包括Spark SQL、Spark Streaming、MLlit
GraphX等组件,可以满足不同场景下的数据处理需求。

spark集群搭建

在部署spark集群时,我们知道有三种:

一种是本地模式,一种是Standalone 集群,还有一种是云端。

1.Spark安装

首先我们需要在master节点上进行Spark的安装。

其中1台机器(节点)作为Master节点,主机名为hadoop1,另外两台机器(节点)作为Slave节点(即作为Worker节点),主机名分别为hadoop2hadoop3

在Master节点机器上,访问Spark官方下载地址Downloads | Apache Spark,按照如下图下载:

 

 

我们选择2.1.0的版本,也可以选择其他的版本,但是需要注意的是,如果你选择的Spark版本过高,可能导致无法与你的hadoop版本适配。

完成下载后,进行如下的命令行操作,和hadoop安装时十分类似。

$ tar -zxvf scala.2.11.8.tgz  #解压到当前路径

 

 

 

$ cd /usr/local

$ sudo mv ./spark-2.1.0-bin-without-hadoop/ ./spark #重命名

 

 

spark安装与上述Scala步骤一致

2.环境变量配置

同样在master机器上,打开bashrc文件进行环境变量配置。

$ vim ~/.bashrc

在文件中添加如下内容

export PATH=$PATH:/usr/local/scala/bin并使其生效。

保存文件并退出vim编辑器,执行如下命令让改环境变量生效:

$ source ~/.bashrc

设置好后,可以使用Scala命令来检验一下是否设置正确:

$ scala

 

输入scala命令以后,屏幕上会显示Scala和java版本信息,并进入“scala>”提示符状态,这时就可以开始使用Scala解释器了,可以输入scala语句来调试scala代码。

3.Spark集群配置

进入到/usr/local/spark的conf路径下,进行以下文件的配置。

a)配置slaves文件

但是由于其开始并没有这个文件,而只有slaves.template文件,所以我们需要先拷贝重命名一下。

$ cd /usr/local/spark/conf/

$ cp ./slaves.template ./slaves

 

 

然后打开这个slaves文件,并将默认的localhost替换相应的两个slave结点:

hadoop2

hadoop3

分别在三台虚拟机上修改slaves文件:

hadoop1

 

 

hadoop2

 

 

hadoop3

 

b)配置spark-env.sh文件

同样的,我们需要先将template文件拷贝重命名。

将 spark-env.sh.template 拷贝到 spark-env.sh

$ cp ./spark-env.sh.template ./spark-env.sh

然后在文件中添加如下内容

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

export SPAEK_MASTER_HOST=hadoop1

export SPARK_MASTER_PORT=7077

export SPARK_MASTER_WEBUI_PORT=8080

export SPARK_WORKER_MEMORY=1g

export SPARK_WORKER_CORES=1

export SPARK_WORKER_INSTANCES=1

export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop分别在三台虚拟机上修改spark-env.sh文件:

hadoop1

 

 

hadoop2

 

 

hadoop3

 

 

c)集群规划

节点

spark节点

hadoop节点

hadoop1

master

worker

datanode

namenode secondarynamenode(hadoop) resourcemanager nodemanager(yarn)

hadoop2

worker

datanode nodemanager

hadoop3

worker

datanode nodemanager

4.启动Spark集群

因为我们的Spark是基于hadoop来运行的,因此我们首先需要将hadoop启动起来。

启动Hadoop集群

 

在master机器上运行如下指令启动hadoop集群

$ cd /usr/local/hadoop/

$ sbin/start-all.sh

hadoop1

 

 

hadoop2

 

 

hadoop3

 

 

启动spark集群

然后我们再再master机器上启动Spark的master进程。

$ cd /usr/local/spark/

$ sbin/start-master.sh

使用jps命令查看master机器上的进程情况,结果如下。

hadoop1

 

 

我们发现,除了hadoop的相关进程之外,还多了一个Master进程,证明master节点已经成功启动。

然后我们同样在master机器上再启动worker进程。

用以下命令启动所有的slave节点

$ sbin/start-slaves.sh

hadoop1

 

分别在hadoop2hadoop3节点上运行jps命令,可以看到多了个Worker进程

hadoop2

 

 

hadoop3

 

 

 我们发现,同样的除了hadoop的相关进程,多出来一个Worker进程,证明worker节点也已经成功启动。

在浏览器上查看Spark独立集群管理器的集群信息

在master主机上打开浏览器,

分别访问http://192.168.43.33:50070,如下图:

 

 

 

分别访问http://192.168.43.33:8080,如下图:

 

 

$ spark-shell  #进入shell

 

 

关闭spark集群

①关闭master节点

$ sbin/stop-master.sh

②关闭worker节点

$ sbin/stop-slaves.sh

③关闭Hadoop集群

$ cd /usr/local/hadoop/

$ sbin/stop-all.sh

 

 

存在问题及解决方案

请参考以下文章 

大数据技术——搭建spark集群出现的问题_肉肉肉肉肉肉~丸子的博客-CSDN博客

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

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

相关文章

多路I/O转接 poll(了解)

poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。 p…

Java 进阶(8) 线程常用方法

常用方法 方法名 说明 public static void sleep(long millis) 当前线程主动休眠 millis 毫秒。 public static void yield() 当前线程主动放弃时间⽚,回到就绪状态,竞争下⼀次时间⽚。 public final void join() 允许其他线程加⼊到当前线程中。…

什么是缓存穿透、缓存雪崩、缓存击穿

缓存穿透 缓存穿透 :缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库,失去了缓存保护后端存储的意义。 解决方案 缓存空值 如果访问数据库后还未命中,则把一…

JVM OOM问题排查与解决思路

OOM原因 1. 堆溢出 报错信息: java.lang.OutOfMemoryError: Java heap space 代码中可能存在大对象分配,无法获得足够的内存分配 可能发生内存泄露,导致内存被无效占用以至于耗尽 2. 永久代/元空间溢出 报错信息: java.lang.O…

Python黑马程序员(Spark实战)笔记

1、基础准备 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark # 导包 from pyspark import SparkConf,SparkContext #创建SparkConf类对象 confSparkConf().setMaster("local[*]").setAppName("test_spark_app") #基于SparkXConf类对象创…

(十一)排序算法-选择排序

1 基本介绍 选择排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。 动画展示: 选择排序思想: 选择排序(select sorting)也是一种简单的…

【刷题篇】栈和队列

目录 一.前言🌈 二.有效的括号✨ a.题目 b.题解分析 c.AC代码 三. 用队列实现栈📏 a.题目 b.题解分析(辅助队列法) c.AC代码(辅助队列法) d.题解分析(就地存储法) c.AC代…

全面带你了解AIGC的风口

前言 一、AIGC的介绍 二、AIGC 的几个主要作用 三、实现AIGC过程的步骤 四、科技新赛道AIGC开始火了 五、AIGC对世界产生广泛的影响 六、AIGC技术的主要风口 😘一、AIGC的介绍 AIGC (AI Generated Content) 是指通过人工智能技术生成的各种类型的内容,…

SpringBoot学习3

一、JSR303数据验证 使用Validated进行数据验证,如果数据异常则会统一抛出异常,方便异常中心统一处理。 空检查 Null 对象为null NotNull 对象不能为 null,但可以是 空字符串(无法检验长度为0的字符串) NotBlank 检查约束字符串是不是为nul…

20230403在WIN10下通过ffmpeg调用NVIDIA的硬件加速wmv视频转码为MP4格式

20230403在WIN10下通过ffmpeg调用NVIDIA的硬件加速wmv视频转码为MP4格式 2023/4/3 15:50 最近向学习日语,找到日语发音的视频中,大多数是MP4格式,少量是WMV格式,PR2023貌似不能识别WMV格式。 于是:万能的ffmpeg上场了&…

使用GPT-4生成QT代码

一、概述最近ChatGPT火爆起来了,ChatGPT是一种基于GPT的自然语言处理模型,可以用于生成自然语言文本,例如对话、文章等。最近又发现了一个优秀且免费的代码生成工具Cursor ,Cursor集成了 GPT-4 ,可以帮助你快速编写、编…

动态规划:状态机DP和买卖股票问题【零神基础精讲】

买卖股票的最佳时机:无限次/冷冻期/k次【基础算法精讲 21】 来自0x3f:https://www.bilibili.com/video/BV1ho4y1W7QK/ 介绍了【买卖股票系列问题】与【状态机 DP】,包括【至多/恰好/至少】的讲解。 文章目录买卖股票问题和状态机DP(无限次)[1…

【CocosCreator入门】CocosCreator组件 | DragonBones(骨骼动画)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中DragonBones,它可以帮助您创建出色的2D骨骼动画。在本文中,我们将探讨CocosCreator引擎的DragonBones组件,以及如何使用它来创建精美的动画。 目录 …

VisualGC插件使用

下载安装VisualVM 下载地址:Visual VM mac系统选择macOS Application Bundle,下载完成后,双击dmg包安装即可,之后双击启动。 安装Visual GC 插件 点击菜单栏Tools,选择Pulgins,在第二个选项中找到Visua…

【CSS】更改用户界面样式 ③ ( 取消文本域拖拽 | 代码示例 )

文章目录一、取消文本域拖拽二、文本域拖拽示例三、取消文本域拖拽示例一、取消文本域拖拽 textarea 文本域 在 默认状态下是可以进行拖拽的 , 在网页布局中 , 一般不会允许这种情况发生 , 任意拖拽文本域会影响网页的整体布局 ; 设置文本域不可拖拽样式 : resize: none;文本…

windows编程(4) - GDI绘图基础

基础概念 GDI:Graphic Device Interface 图形设备接口。GUI:Graphic User Interface 图形用户接口。HDC:Handle of Device Context: 图形设备上下文句柄。 字符界面的基本单位是字符。 图形界面的基本单位是像素。 像素&#…

从数据展示中汉字缺失了解字符编码知识

有人在使用皕杰报表时遇到如下问题: 有些汉字变成了“?”,这是为什么呢?实际上就是你用的字符集里没有这个汉字导致的,要想搞懂这个问题,还得从字符、字符集、字符编码说起。 所谓字符,就是各…

定时任务练习----Linux 定时发送邮件 ( QQ 邮箱 为例)

邮件设置 : 在 QQ 邮箱的最上面 ,点击设置。 在账户 这一栏,往下面走 找POP3 开头的栏目 在 POP3/SMTP 服务这一行,点击开启 ( 本身是 关闭状态 ) 关于 POP3 和 SMTP 服务需要做以说明 ; >>> 我…

技术管理笔记1

看点杂篇,整理下笔记: 目录: 1技术的本质 2 技术团队管理的本质 3 技术管理者的能力要求 4 技术管理者风格类型 5 实战案例分析: 一技术的本质 技术存在感低,缺乏话语权,以业务导向为主。 二 技术团…

Spring Cloud第二季--OpenFeign和Feign

文章目录一、Feign二、Feign和OpenFeign的区别三、案例测试1、eureka注册中心集群7001/70022、两个微服务3、OpenFeign一、Feign Spring Cloud Feign的介绍在Spring Cloud学习–声明式调用(Feign)中详细介绍。 简单回顾下,Feign是一个声明式…