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

一、版本信息

虚拟机产品: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安装成功!!!

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

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

相关文章

摄像头工程师说 Camera - 颜色空间 YUV 与 YCbCr 的区别与联系(4)

摄像头工程师说 Camera - 数据格式 YUV 与 YCbCr 的区别与联系(4) 概述 上回书咱们说到 摄像头工程师说 Camera - 数据格式 YUV 格式的存储(3) 本节咱们说说YUV 与 YCbCr 两种色彩空间定义的联系与区别。 相同点: Y…

YOLOv9:使用可编程梯度信息学习您想学习的内容

摘要 arxiv.org/pdf/2402.13616.pdf 当今的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果能最接近于实际结果。同时,还必须设计一个适当的架构,以便于获取足够的预测信息。现有的方法忽略了一个事实,即当输入数据经历层层特征提取和空间变换时,会损失…

python 推导式

Python 推导式 Python推导式(comprehensions,又称解析式)是Python的一种独有特性,它可以从一个数据序列构建另一个新的数据序列。这种特性相当于语法糖的存在,可以简化代码。Python推导式包括列表推导式、字典推导式、…

React富文本编辑器开发(四)

上一节我们做了块级元素的格式操作,这节我们来讲行内元素的相关操作。行内元素的样式一般指 粗体、斜体、代码或 删除线等 。通过前一章的内容得知,元素的渲染是通过渲染器来呈现的,块级元素通过指定 renderElement, 行内元素(即内…

UE5 C++ 发射子弹发射(Projectile)

一.相关蓝图的练习,在我之前的文章中射击子弹案例-CSDN博客 本篇使用C实现 1.创建C类 MyBullet,在MyBullet.h中包含相关头文件 #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "Components/StaticMeshComponent.…

震惊!python类型的自动化测试框架原来这么简单!

自2018年被评选为编程语言以来,Python在各大排行榜上一直都是名列前茅。目前,它在Tiobe指数中排名第三个,仅次于Java和C。随着该编程语言的广泛使用,基于Python的自动化测试框架也应运而生,且不断发展与丰富。 因此&am…

Spring Cloud 实战系列之 Zuul 微服务网关搭建及配置

一、创建SpringBoot项目 用mavan搭建也可以。(重要的是后面pom里应该引入那些依赖,application.yml怎么配置) 由于开始构建项目时选择了Eureka Server,所以pom.xml中不需要手动添加依赖了 首先在启动类SpringcloudApplicatio…

rk3568-一种基于wifi的网络环境搭建方案

前言: PC--Ubuntu--开发板 三者之间的网络互相ping通很重要,尤其是ubuntu和开发板互ping成功最关键,关系到nfs,tftp等常用的开发手段。现在大多数开发板都带有wifi芯片,现在提供一种方案可以三个设备无线地搭建网络环境…

MySQL5.7.44版本压缩包在Win11系统快速安装

一.背景 主要还是为了公司的带徒弟任务。我自己也喜欢MySQL的绿色版本。 1.软件版本说明 MySQL版本:5.7.44 压缩包版本,相当于绿色版。当然,你也可以使用window系统的Installer版本去安装。 操作系统:Win11家庭版 二.MySQL软…

Qt5.9.9交叉编译(带sqlite3、OpenSSL)

1、交叉编译工具链 这里ARM平台是ARM CortexA9的,一般交叉编译工具链demo板厂商都会提供,若未提供或想更换新版本的交叉编译工具链可参考以下方式获取。 1.1 下载适用于ARM CortexA9的交叉编译工具链 Linaro Releases下载gcc4的最新版xxxx-i686_arm-li…

力扣精选算法100道——颜色分类(双指针和三指针俩种方法解决此题)

目录 🚩了解题意 🚩算法分析 第一种方法:双指针 🚩代码实现一 第二种方法:三指针 🚩代码实现二 🚩了解题意 本题将整数0,1,2代表红白篮,nums中的整数并…

深度学习-神经网络原理

文章目录 神经网络原理1.单层神经网络1.1 回归单层神经网络:线性回归1.2 二分类单层神经网络:sigmoid与阶跃函数 1.3 多分类单层神经网络:softmax回归 神经网络原理 人工神经网络(Artificial Neural Network,ANN&…

项目-SERVER模块-Socket模块

Socket模块 一、Socket模块是什么?二、代码实现1.成员变量2.构造、析构函数3.获取套接字文件描述符4.创建套接字5.绑定地址信息6.开始监听连接请求7.向服务器发起连接8.获取新连接9.接收数据10.非阻塞接收数据11.发送数据12.非阻塞发送数据13.关闭套接字14.创建一个…

灯塔:HTML笔记

网页由哪些部分组成? *文字 图片 音频 视频 超链接 程序员写的代码是通过浏览器转换成网页的 五大浏览器有哪些? *IE浏览器 *火狐浏览器(Firefox) *谷歌浏览器(Chrome) *Safari浏览器 *欧朋浏览器&…

AI新工具(20240301) Ideogram; Image to Music Generator等

1: Ideogram 全新的多模态生图AI工具,以其优秀的文字渲染能力和生图能力受到业界瞩目 Ideogram是一个创新的AI工具,它通过在生成的图片中自然地整合文字,解决了生图AI领域长期存在的一个难题。这个工具特别擅长将文本以极其自然和协调的方式…

第三百七十五回

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"分享三个使用TextField的细节"相关的内容,本章回中将介绍如何让Text组件中的文字自动换行.闲话休提,让我们一起Talk Flutter吧。 …

铝型材【欧标】

2020: 3030: 4040: 欧标T型螺丝 2020: 10最大 20120 59 3030: 12最大 30150 76 4040: 40最大 40200 …

RV1126芯片概述

RV1126芯片概述 前言1 主要特性2 详细参数 前言 1 主要特性 四核 ARM Cortex-A7 and RISC-V MCU250ms快速开机2.0Tops NPU14M ISP with 3帧 HDR支持3个摄像头同时输入4K H.264/H.265 视频编码和解码 2 详细参数

TikTok矩阵系统功能怎么写?常用源代码是什么?

TikTok矩阵系统的功能是如何编写的?又有哪些常用的源代码支撑这些功能呢?本文将通过五段源代码的分享,为大家揭开TikTok矩阵系统的神秘面纱。 一、TikTok矩阵系统的核心功能 TikTok的矩阵系统涵盖了多个核心功能,包括但不限于用户管理、内容分发、推…

MacBook将iPad和iPhone备份到移动硬盘

#创作灵感# 一个是ICloud不够用,想备份到本地;然而本地存储不够用,增加容量巨贵,舍不得这个钱,所以就想着能不能备份到移动硬盘。刚好有个移动固态,所以就试了一下,还真可以。 #正文# 说一下逻…