Ubuntu22.04下安装Spark2.4.0(Local模式)

news2024/10/5 16:46:49

一、版本信息

虚拟机产品:VMware® Workstation 17 Pro   虚拟机版本:17.0.0 build-20800274

ISO映像文件:ubuntukylin-22.04-pro-amd64.iso

Hadoop版本:Hadoop 3.1.3

JDK版本:Java JDK 1.8

Spark版本:Spark 2.4.0

这里有我放的百度网盘下载链接,读者可以自行下载:

链接:https://pan.baidu.com/s/121zVsgc4muSt9rgCWnJZmw 
提取码:wkk6

注意:其中的ISO映像文件为ubuntukylin-16.04.7版本的而不是22.04版本,22.04版本内存过大无法上传,见谅!!!

也可去Spark官网进行下载:Spark官方下载地址

二、安装Hadoop(伪分布式)

Spark的安装过程较为简单,在已安装好 Hadoop 的前提下,经过简单配置即可使用。

如果读者没有安装Hadoop3.1.3(伪分布式),请访问林子雨老师的Hadoop3.1.3安装教程进行Hadoop的伪分布式安装:Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)_厦大数据库实验室博客icon-default.png?t=N7T8https://dblab.xmu.edu.cn/blog/2441-2/

三、安装JAVA JDK

安装Hadoop3.1.3的过程就已经要求安装JAVA JDK1.8了。如果没有,请参考林子雨老师的Hadoop安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04进行安装配置。

四、安装Spark(Local模式)

在安装Spark之前默认读者已经在虚拟机软件上安装VMware Tools,若没有安装请移步于本人的另一篇文章:真·保姆级——在VMware的Ubuntukylin上进行Hadoop单机/伪分布式安装时安装VMware Tools后虚拟机与物理机之间无法传输文件和复制粘贴的问题(附Ubuntu更改默认登录用户)-CSDN博客

1.将Spark安装包移到下载目录中

将物理机上下载的Spark安装包拖拽到读者虚拟机Ubuntu系统家目录中的下载目录中:

2.下载Spark并确保hadoop用户对Spark目录有操作权限

sudo tar -zxf ~/下载/spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.4.0-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark          # 此处的 hadoop 为你的用户名
  • 将Apache Spark压缩包解压到/usr/local/目录下
  • 切换当前工作目录到/usr/local
  • 将解压出来的Spark目录重命名为spark,以便于记忆和管理
  • /usr/local/spark目录及其子目录和文件的所有权更改为用户hadoop,确保该用户对Spark目录有操作权限,便于后续的配置和使用

五、修改Spark的配置文件

安装Spark后,还需要修改Spark的配置文件spark-env.sh

cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
  • 切换当前工作目录到/usr/local/spark。这个目录是Apache Spark的安装目录,之前的步骤中已经将Spark解压并重命名到这个位置
  • 创建一个可编辑的环境配置文件spark-env.sh,基于模板文件spark-env.sh.template。通过编辑这个文件,可以自定义Spark的运行环境,例如设置JVM选项、Spark的工作节点内存限制、日志配置等

编辑spark-env.sh文件:

vim ./conf/spark-env.sh

在第一行添加以下配置信息并保存:

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

配置完成后就可以直接使用,不需要像Hadoop运行启动命令。

六、验证Spark是否安装成功

通过运行Spark自带的示例,验证Spark是否安装成功。

cd /usr/local/spark
bin/run-example SparkPi

运行Apache Spark自带的一个示例程序 —— SparkPi。

这个示例程序计算π的值,是一个经典的计算密集型任务,常用来测试Spark集群的安装是否成功以及其基本的运行情况

下面详细解释这些命令的作用:

  1. cd /usr/local/spark:这条命令将当前的工作目录切换到Apache Spark的安装目录。前提是读者已经按照之前的指导安装并配置了Spark,并且将其安装在了/usr/local/spark目录下。

  2. bin/run-example SparkPi:这条命令实际上是运行Spark自带的一个示例程序。 

  • bin/run-example 是一个脚本,位于Spark安装目录下的bin文件夹中。它用于运行Spark自带的示例程序。
  • SparkPi 是要运行的示例程序的名称。这个程序通过蒙特卡洛方法计算π的值。

具体来说,这个命令的执行过程如下:

  • 当执行 bin/run-example SparkPi 命令时,Spark会启动一个应用程序实例,并执行计算π值的任务。
  • 这个任务会被分解成多个小任务(task),并可能在一个或多个工作节点(如果读者配置了Spark集群的话)上并行执行。
  • 执行完成后,程序会输出计算得到的π值。

执行时会输出非常多的运行信息,输出结果不容易找到,bin/run-example SparkPi 2>&1 | grep "Pi is"这条命令的作用是运行SparkPi示例程序,然后搜索并显示所有包含“Pi is”的输出行,显示程序计算出的π值的那一行,因此这个命令可以帮助用户直接查看计算结果,而不必手动从可能很长的程序输出中寻找相关信息。

bin/run-example SparkPi 2>&1 | grep "Pi is"

下面详细解释这些命令的作用:

  1. bin/run-example SparkPi:运行Spark自带的示例程序SparkPi。这个程序计算π的值,是一个用来测试Spark安装和配置是否正确的经典示例。

  2. 2>&1:这部分是重定向命令。2代表标准错误(stderr),1代表标准输出(stdout)。2>&1的意思是将标准错误重定向到标准输出,这样错误信息和正常输出信息都会被发送到同一个地方(即标准输出)。

  3. | grep "Pi is":‘|'是管道符,它的作用是将前一个命令的输出作为后一个命令的输入。grep是一个文本搜索工具,可以根据指定的模式(pattern)搜索文本。这里,grep "Pi is"表示搜索包含“Pi is”的行。

过滤后的运行结果如下图示:

至此,Spark安装成功!!!

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

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

相关文章

1905_ARMv7-M的堆栈寄存器

1905_ARMv7-M的堆栈寄存器 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) ARMv7-M实现了2种堆栈,分别是MSP和PSP。复位的时候默认是MSP,而当前是哪种可以通过CONTROL.SPSEL寄存器的bit来查看。 SP寄存器的最低2bit,S…

叠氮生物素,Biotin-azide ,含有生物素基团和叠氮基团

您好,欢迎来到新研之家 文章关键词:生物素-叠氮,生物素叠氮,叠氮生物素,Biotin-azide ,Azide-Biotin,Biotin-N3,N3-Biotin,908007-17-0 一、基本信息 【产品简介】&a…

根据二层封装协议决定—网络类型

目录 一、网络类型的分类 二、数据链路层协议 MA网络 以太网协议 P2P网络 一、网络类型的分类 P2P --- point to point --- 点到点网络 MA --- Multi-Access Network --- 多点接入网络 BMA --- Broadcast Multi-Access Network --- 广播型多点接入网络 NBMA --- Non-Bro…

如何更好的引导大语言模型进行编程的高效开发流程?

这张图片展示了一种如何更好地引导大语言模型进行编程的方法。 首先,最简单也是最有效的方法是让大语言模型重复运行多次,每次增加一些额外的信息,直到获得想要的结果。这种方法虽然简单,但可能需要多次尝试才能得到满意的结果。…

AI搜索工具颠覆百度搜索,直接给出结果

这可能是一款足够颠覆搜索引擎的AI工具,绝对是AI产品中的国货之光。 它就是秘塔AI搜索,主打的亮点就是没有广告,我们进入官网之后,可以在对话框输入我们想要了解的事件。 比如最近比较热门的是中国AI教父李一舟,它会执…

netlink原理及应用

什么是netlink netlink是一种基于网络的通信机制,允许内核内部、内核与用户态应用之间甚至用户态应用之间进行通信;netlink的主要作用是内核与用户态之间通信;它的思想是,基于BSD的socket使用网络框架在内核和用户态之间进行通信…

Python算法题集_括号生成

Python算法题集_括号生成 题22:括号生成1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【堆栈回溯】2) 改进版一【切片回溯】3) 改进版二【列表缓存逐层扩充】 4. 最优算法5. 相关资源 本文为Python算法题集之一的代码示例 题22&am…

#单片机(TB6600驱动42步进电机)

1.IDE:keil 2.设备:保密 3.实验:使用单片机通过普通IO口控制TB6600驱动42步进电机 4.时序图: TB6600 ENA、ENA-DIR-、DIRPUL-、PULB-、BA、A-VCC、GND使能电机(直接悬空不接)方向脉冲输入(普通IO口模拟即可&#xff…

回归啦!!!

消失的日子在实习,今天最后一天了来看看自己的学习日志,有没有可以和小伙伴交流的部分吧! 目录 一、产品one ①简介 ②底层原理 ③知识点一 作用一:日志采集 作用二:实时监测 作用三:规则匹配 作用…

足底筋膜炎的症状及治疗

足底筋膜炎症状:足底筋膜炎通常表现为足跟部疼痛,尤其是在晨起或长时间站立、行走后加重。疼痛可能向足底前部或足弓处放射,严重时可能影响行走。此外,患者还可能出现足跟部肿胀、皮肤温度升高、局部压痛等症状。 足底筋膜炎治疗方…

WinForm、Wpf自动升级 AutoUpdater.NET

Github AutoUpdater.NET 目录 一、IIS部署 更新站点 二、创建Winform 一、IIS部署 更新站点 IIS默认站点目录下创建 目录 Downloads、Updates Updates目录创建文件 UpdateLog.html、AutoUpdaterStarter.xml UpdateLog.html&#xff1a; <html><body><h1…

FPGA开源项目分享——2D N-Body重力模拟器

​导语 今天继续康奈尔大学FPGA 课程ECE 5760的典型案例分享——2D N-Body重力模拟器。 &#xff08;更多其他案例请参考网站&#xff1a; Final Projects ECE 5760&#xff09; 1. 项目概述 项目网址 Grav Sim 项目说明 该项目的目标是创建一个用DE1-SOC进行硬件加速的2…

FPGA-VGA成像原理与时序

什么是VGA: VGA, Video Graphics Array。即视频图形阵列,具有分辨率高、显示速率快、颜色丰富等优点。VGA接口不但是CRT显示设备的标准接口,同样也是LCD液晶显示设备的标准接口,具有广泛的应用范围。在FGPA中,常广泛用于图像处理等领域。 VGA 显示器成像原理 在 VGA 标准刚兴…

YOLO算法改进Backbone系列之:PVTv2

摘要&#xff1a;最近&#xff0c;Transformer在计算机视觉方面取得了令人鼓舞的进展。在本研究中&#xff0c;本文通过增加(1)线性复杂度注意层、(2)重叠贴片嵌入和(3)卷积前馈网络三种设计&#xff0c;改进了原始的金字塔视觉转换器(PVT v1)&#xff0c;提出了新的基线。通过…

机器学习笔记 YOLOv9模型相关论文简读

一、YOLOv9简述 自 2015 年 Yolov1 推出以来,已经出现了多个版本。 基于Darknet的YOLOv2、YOLOv3和YOLOv4 YOLOv5 YOLOv8 基于 Ultralytics。 SCALED-YOLOv4 使用 Pytorch 而不是 Darknet。 YOLOR是YOLOv4的改进。 YOLOX是YOLOv3的改进。 YOLOv6专注于工业应用。 YOLOv7 来自 …

iOS消息转发流程

当向Objc对象发送消息时&#xff0c;如果找到对象对应的方法&#xff0c;就会进入消息转发流程&#xff0c;给开发者提供一些最后的机会处理消息无法发送问题&#xff0c;以免出现程序崩溃。 1. 回调对象的resolveInstanceMethod方法&#xff0c;在这个方法中&#xff0c;允许开…

【golang】go module依赖的git tag被覆盖 如何处理 | 因测试产生大量的git tag 如何清除 最佳实践

一、场景 当我们把本地和远程git仓库的 tag全部删除&#xff0c;我们另外的项目依赖于这个被删除tag无法更新版本 如何处理&#xff1f; 如上图&#xff1a; 这里我创建了一个 v0.0.1 的tag&#xff0c;然后删除了这个tag&#xff0c;然后又创建了一个新的 v0.0.1的tag&#xf…

【图论】【并集查找】【C++算法】928. 尽量减少恶意软件的传播 II

作者推荐 动态规划的时间复杂度优化 涉及知识点 图论 并集查找 LeetCode928. 尽量减少恶意软件的传播 II 给定一个由 n 个节点组成的网络&#xff0c;用 n x n 个邻接矩阵 graph 表示。在节点网络中&#xff0c;只有当 graph[i][j] 1 时&#xff0c;节点 i 能够直接连接到…

(每日持续更新)jdk api之PipedOutputStream基础、应用、实战

博主18年的互联网软件开发经验&#xff0c;从一名程序员小白逐步成为了一名架构师&#xff0c;我想通过平台将经验分享给大家&#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验&#xff0c;晚上进行用心精简、整理、总结、定稿&…

7. 构建简单 IPv6 网络

7.1 实验介绍 7.1.1 关于本实验 IPv6&#xff08;Internet Protocol Version 6&#xff09;也被称为IPng&#xff08;IP Next Generation&#xff09;。它是Internet工程任务组IETF&#xff08;Internet Engineering Task Force&#xff09;设计的一套规范&#xff0c;是IPv4…