云计算与大数据——Spark的安装和配置

news2024/12/23 14:47:48

云计算与大数据——Spark的安装和配置

Spark的简单介绍:

Apache Spark是一个基于内存的分布式计算框架,它提供了高效、强大的数据处理和分析能力。与传统的Hadoop MapReduce相比,Spark的主要优势在于其能够将数据集缓存在内存中,从而大大减少了磁盘I/O操作,提高了数据处理速度。

Spark提供了多种编程接口,包括Scala、Java、Python和R等,同时还提供了交互式Shell,易于使用和快速调试。Spark的核心是分布式的RDD(Resilient Distributed Datasets),它对数据进行了抽象和封装,方便了数据的处理和管理。

Spark还可与多种数据存储系统集成,包括Hadoop HDFS、Apache Cassandra、Amazon S3等。同时,Spark还提供了多种高级库和工具,如Spark SQL、Spark Streaming、MLlib等,方便进行数据查询、流式处理和机器学习等任务。

总之,Spark已经成为了目前最受欢迎的大数据计算框架之一,广泛应用于数据处理、机器学习、实时数据处理等领域。
在这里插入图片描述

安装和配置

在安装和配置Spark之前,要确保Hadoop 已经成功安装,并正常启动。没有部署好hadoop的可以查看之前的文章。
云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细!)

Spark安装在 HadoopMaster节点上。下面的所有操作都在HadoopMaster节点上进行。
1)解压并安装Spark
本文章所需要的spark安装包已上传到个人博客主页→资源处,有需要的小伙伴可以自行下载。
tar -zxvf spark-3.3.0-bin-hadoop3.3.2.tgz安装包

使用下面的命令,解压Spark 安装包:

tar -zxvf spark-3.3.0-bin-hadoop3.3.2.tgz

在这里插入图片描述
执行ls -l命令后的界面如下图所示,这些内容是Spark包含的文件。
在这里插入图片描述

cd bin
./spark-shell

执行spark-shell命令后的界面如图所示。
在这里插入图片描述
配置Hadoop环境变量
在Yarn上运行Spark需要配置环境变量

Vim ~/.bashrc

在这里插入图片描述
修改内容后保存退出。

Source ~/.bashrc

使配置生效。
在这里插入图片描述
验证spark安装
进入Spark安装主目录,执行如下命令。

1.Spark 在YARN上运行,以集群模式启动Spark应用程序
这里指定使用 YARN 集群管理器作为主节点。
先执行这个命令:

bin/spark-submit \
> --class org.apache.spark.examples.SparkPi \
> --master yarn \
> --deploy-mode cluster \
> ./examples/jars/spark-examples_2.12-3.3.0.jar \
> 10

bin/spark-submit:启动 Spark 应用程序提交工具。
–class org.apache.spark.examples.SparkPi:指定要运行的 Java 类,这里使用了 Spark 官方提供的计算 pi 数值的例子程序 SparkPi。

–master yarn:设置 Spark 应用程序的主节点 URL,这里指定使用 YARN 集群管理器作为主节点。

–deploy-mode cluster:指定应用程序的部署模式。在这种模式下,Spark 驱动程序将在 YARN 集群中启动,并协调整个应用程序。另一种可选的部署模式是 client 模式,其中驱动程序会直接在提交命令的客户端上启动。

./examples/jars/spark-examples_2.12-3.3.0.jar:指定要提交的应用程序代码包的位置和名称。在这个例子中,使用了 Spark 的示例程序提供的 JAR 文件。

指定运行 Spark 应用程序时要传递给它的参数。在这个例子中,将计算 pi 数值的精度设置为 10。

启动脚本调用的是spark-submit,所以直接看bin/spark-submit脚本,跟spark-shell一样,先检查是否设置了${SPARK_HOME},然后启动spark-class,并传递了org.apache.spark.deploy.SparkSubmit作为第一个参数,然后把前面Spark-shell的参数都传给spark-class

–master 指定master节点
–class 指定执行的类
–executor-memory executor内存大小
–total-executor-cores 总的executor 数目

不对核心数目做限制的时候,是最快的。只有两个核心的时候,很慢。
运行截图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.然后我们再这里设置为本地模式local并使用两个 CPU 核心启动。

bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[2]  --num-executors 2 --driver-memory 1g --executor-memory 1g --executor-cores 1 ./examples/jars/spark-examples_2.12-3.3.0.jar 10

其中
bin/spark-submit:启动 Spark 应用程序提交工具。
–class org.apache.spark.examples.SparkPi:指定要运行的 Java 类,这里使用了 Spark 官方提供的计算 pi 数值的例子程序 SparkPi。

–master local[2]:设置 Spark 应用程序的主节点 URL,这里设置为本地模式并使用两个 CPU 核心。实际上,Spark 可以连接到许多不同类型的集群管理器(例如 YARN、Mesos 或 Kubernetes)作为主节点。

–num-executors 2:设置 Spark 应用程序要使用的执行器数量。在本地模式下,这通常应该小于或等于计算机的 CPU 核心数。

–driver-memory 1g:设置驱动程序进程可以使用的内存量。 Spark 驱动程序负责协调整个应用程序,并将结果返回给客户端或保存到磁盘中。

–executor-memory 1g:设置每个执行器进程可以使用的内存量。执行器进程是 Spark 在集群中实际执行计算任务的工作者。

–executor-cores 1:设置每个执行器进程可以使用的 CPU 核心数量。

./examples/jars/spark-examples_2.12-3.3.0.jar:指定要提交的应用程序代码包的位置和名称。在这个例子中,使用了 Spark 的示例程序提供的 JAR 文件。

我们在这里指定运行 Spark 应用程序时要传递给它的参数。
在这里插入图片描述
运行正常出现的界面信息:

在这里插入图片描述

在这里插入图片描述
新建一个终端,进入到hadoop目录下的userlogs日志文件,找到了我们的spark应用结果日志文件,可以在里面找到计算结果和相关信息。

cd $HADOOP_HOME/logs/userlogs
ls

在这里插入图片描述

cd application_1668847055201_0007
ls

在这里插入图片描述

查看执行结果文件信息

cat container_1668847055201_0007_01_000001/stdout

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中计算结果和相关运行信息如下图所示。我们可以看到Spark 应用程序成功地计算出了 pi 数值的近似值,并将结果打印到了控制台上。结果中的 Pi is roughly 3.1416631416631415 表示计算出的 pi 的近似值为 3.1416631416631415。
在这里插入图片描述

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

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

相关文章

Abaqus多孔材料、多孔介质、双相材料、随机三维多孔结构建模插件:Random Porous Structure 3D

插件介绍 Random Porous Structure 3D - AbyssFish 插件可在Abaqus软件内生成三维多孔结构,可用于两相材料或多孔介质的模拟等。 插件可指定孔隙的分布概率、生长概率、孔隙率、平滑范围等参数,其参数控制原理可参考四参数随机生长法(QSGS…

开源C# Winform Scada 上位机系统

开源Winform Scada系统 功能展示C#源码程序说明下载程序源码获取 功能展示 本软件目前包含: 常用PLC通讯控件, 常用IO读写控件, 权限过滤, 用户管理, 日志记录, 报警记录. 使用方式: 在VS2022里面拖放控件, 填写控件属性,完成组态.即可成为一个完整的上位机. C#源码 程序说明…

CSS 滚动驱动动画 view-timeline (view-timeline-name ❤️ view-timeline-axis )

view-timeline 我们之前在 scroll() 中提到了一个因为绝对定位导致滚动无效的问题, 并使用 scroll-timeline 成功解决了这个问题, 而 scroll-timeline 起到的作用就是指定到底是哪个元素提供 scroll progress timeline. 与此相似, view-timeline 定义了一个具名的 view progre…

25504-2010 冰葡萄酒 知识梳理

声明 本文是学习GB-T 25504-2010 冰葡萄酒. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了冰葡萄酒的术语和定义、要求、分析方法、检验规则、标签标识和包装、运输、贮存。 本标准适用于冰葡萄酒的生产、检验和销售。 2 规范…

【Servlet】Servlet API 详解

Servlet API 详解 一. HttpServlet1. 核心方法2. 代码示例: 处理 GET 请求3. 关于乱码问题4. 代码示例: 处理 POST 请求 二. HttpServletRequest1. 核心方法2. 代码示例: 打印请求信息3. 代码示例: 获取 GET 请求中的参数4. 代码示例: 获取 POST 请求中的参数(1)5. 代码示例: 获…

Ubuntu修改下载源

1、问题情景 (1)在虚拟机VMware中安装Ubuntu后,可以正常上网。 (2)可以ping www.baidu.com检查网路是否联通。 (3)连通后下载软件是总是下载失败。 (4)环境 Ubuntu: Ubuntu 22.04.2 LTSVMware: 17.0.0 2、解决方法_修改下载源 (1)打开Ubuntu。 (2)点击“显示…

基于微信小程序的在线视频课程学习平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言用户微信端的主要功能有:管理员的主要功能有:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉…

【数据结构】基本概念和术语

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 🌳1.数据 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合.是计算机程序加工的"原料". 数据不仅包…

数据库基础理论

什么是数据库? 数据:描述事物的符号记录,可以是数字、文字、图形、图像、声音、语言等,数据有多种形式,他们都是可以经过数字化后存入计算机。 数据库:存储数据的仓库,是长期存放在计算机内、…

tensorflow损失函数

tf.losses.mean_squared_error(label, predict) 对label类型并不要求 >>>y_int tf.convert_to_tensor([1,0,1], tf.int32) >>>y tf.convert_to_tensor([1,0,1], tf.float32) >>>y_pred tf.convert_to_tensor([0.2,0.3,0.4], tf.float32) >&…

探索 GO 项目依赖包管理与Go Module常规操作

探索 GO 项目依赖包管理与Go Module常规操作 文章目录 探索 GO 项目依赖包管理与Go Module常规操作一.Go 构建模式的演变1.1 GOPATH (初版)1.1.1 go get 1.2 vendor 机制(中版)1.3 Go Module(最新版) 二.创…

xss原理分析

插入法,弹窗法,事件法 绕过HttpOnly通过找到phpinfo的方式,可以看到cookie

C#,数值计算——Normaldev_BM的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Normaldev_BM : Ran { private double mu { get; set; } private double sig { get; set; } private double storedval { get; set; } public Normaldev_BM(double mmu…

牛客网解题之矩形覆盖

10.2 矩形覆盖 题目链接 牛客网 题目描述 我们可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法? 解题思路 当 n 为 1 时,只有一种覆盖方法: 当 …

Unity 制作登录功能02-创建和链接数据库(SQlite)

国际惯例:先看效果 1.SQlite是一种嵌入型数据库 在Unity开发游戏时使用SQLite有多种原因,以下是其中一些主要原因: 嵌入式数据库:SQLite是一个嵌入式数据库引擎,这意味着它不需要单独的服务器进程。这使得使用SQLite非…

TCP/IP协议,IPV4,IPV6,为什么国家大力倡导IPV6的发展

简单回顾一下TCP的特点 TCP是可靠性,UDP是负责效率,那么如何基于UDP实现可靠传输 本质还是考察TCP 目录 TCP/IP协议栈💛 那么假如IP地址不够用怎么办呢?NAT机制💙 IP地址的介绍💜 TCP/IP协议栈&#…

腾讯mini项目-【指标监控服务重构】2023-08-28

今日已办 分工 测试 - 谢雨晨、郑兆隆将1的测试结果记录整理为一个表格,列有:平均内存、最大内存、95内存、cpu的这些等等 - 邓烨钒HyperScan和官方正则库的benchmark对比 - 张锐添PPT制作 - 其他人灵活调动 进度 trace上报:jaeger-colle…

【星穹杂谈】为什么寰宇蝗灾难到折磨玩家却令玩家一致好评?

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,今天咱们不聊技术,来聊聊一些游戏里我个人觉得有趣的东西,今天想和大家聊聊关于星穹铁道这个版本新出的活动寰宇蝗灾为什…

题目 1067: 二级C语言-分段函数 sqrt、fabs、pow

一个分段函数&#xff0c;返回为double值&#xff0c;保留两位小数。 输入5 输出15.00 这题不难&#xff0c;重要的是sqrt(),fabs(),pow(n,2); cmath或者math.h里有的sqrt() 平方根函数&#xff0c;fabs()绝对值函数&#xff0c;pow(n,5); nの五次方函数 #include<iostrea…

【数据结构】泛型

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 泛型 1. 包装类1.1 基本数据类型和对应的…