实验3-Spark基础-Spark的安装

news2025/7/15 20:56:02

文章目录

      • 1. 下载安装 Scala
        • 1.1 下载 Scala 安装包
        • 1.2 基础环境准备
        • 1.3 安装 Scala
      • 2. 下载安装 Spark
        • 2.1 下载 Spark 安装包
        • 2.2 安装 Spark
        • 2.3 配置 Spark
        • 2.4 创建配置文件 spark-env.sh
      • 3. pyspark 启动
      • 4. 建立/user/spark文件夹

1. 下载安装 Scala

1.1 下载 Scala 安装包

下载地址 https://www.scala-lang.org/download/ 。此指导书中使用的 Scala 版本为 scala-2.11.12.tgz ,实验环境中存放在 /hadoop-packages/ 目录下。(在平台做实验本部分不需要自己下载)

1.2 基础环境准备

配置 Scala 环境之前需要有 Hadoop 。实验环境中已经安装配置好了 Hadoop 伪分布式环境 。执行 HDFS 的启动命令:

start-all.sh
jps

5345 SecondaryNameNode
5093 DataNode
5958 NodeManager
6135 Jps
5628 ResourceManager
4924 NameNode

检查启动成功。通过命令 jps,能看到 NameNode,DataNode 和 SecondaryNameNode 都已经成功启动,表示 Hadoop 启动成功。
实操环节:
点击HDFS 的启动:
image.png
输入指令”start-all.sh”:
image.png
输入指令”jps”:
image.png

1.3 安装 Scala

步骤1: 解压安装包 scala-2.11.12.tgz 至路径 /opt,在 Linux 系统终端中执行以下命令:

sudo tar zxvf /hadoop-packages/scala-2.11.12.tgz -C /opt/

image.png
步骤2: 将解压的文件夹名 scala-2.11.12 改为 scala,以方便使用,命令如下:

cd /opt/

image.png
sudo mv scala-2.11.12/ scala/
image.png
改名后的 /opt/ 目录可以输入“ll”查看,下图是示例。
image.png
步骤3: 配置环境变量,将 scala 目录下的 bin 目录添加到 path 中,这样使用 Scala 时就无须到 /opt/scala 目录下,以方便 Scala 的使用。编辑 ~/.bashrc 文件,执行以下命令:

sudo vim ~/.bashrc

image.png
输入显示:
image.png
点击“i”按键进入编辑模式:
image.png
请在 ~/.bashrc 文件中添加如下内容。如图所示。

export SCALA_HOME=/opt/scalaexport PATH=$SCALA_HOME/bin:$PATH

image.png
步骤4: 按 Esc 键退回一般模式,然后输入 :wq 命令并回车保存退出文件。
image.png
再执行以下命令使变量立即生效:

source ~/.bashrc

image.png
步骤5: 将 scala 目录下的所有文件的给予权限。执行以下命令:

cd /opt

image.png

sudo chmod -R 777 scala/*

image.png
步骤6: 验证 scala 版本,在终端中执行以下命令:

scala -version

image.png
输入后显示:

Scala code runner version 2.11.12 – Copyright 2002-2017, LAMP/EPFL

正确输出如上版本信息则安装无误。

2. 下载安装 Spark

2.1 下载 Spark 安装包

下载地址 http://spark.apache.org/downloads.html 。此指导书中使用的 Spark 版本为 spark-2.3.3-bin-hadoop2.7.tgz ,实验环境中存放在 /hadoop-packages/ 目录下。本实验平台不需要下载

2.2 安装 Spark

步骤1: 解压安装包 spark-2.3.3-bin-hadoop2.7.tgz 至路径 /opt ,在 Linux 系统终端中执行以下命令:

sudo tar zxvf /hadoop-packages/spark-2.3.3-bin-hadoop2.7.tgz -C /opt/

image.png
输入后显示:
image.png
步骤2: 将解压的文件夹名 spark-2.3.3-bin-hadoop2.7 改为 spark,以方便使用。
改名前的 /opt/ 目录如图所示。
image.png
执行以下命令:

sudo mv spark-2.3.3-bin-hadoop2.7/ spark/

image.png
改名后的 /opt/ 目录如图所示。
image.png
步骤3: 配置环境变量,将 spark 目录下的 bin 目录添加到 path 中。编辑 ~/.bashrc 文件,执行以下命令:

sudo vim ~/.bashrc

image.png
输入后显示:
image.png
点击”i”按键进入编辑模式:
image.png
请在 ~/.bashrc 文件中添加如下内容。如图所示。

export SPARK_HOME=/opt/sparkexport PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATHexport PYSPARK_PYTHON=pythonexport PATH=$PATH:$SPARK_HOME/bin

image.png
PYTHONPATH环境变量主要是为了在Python3中引入Pyspark库,对于不同版本的Spark , 其py4j-0.10.7-src.zip文件名是不同的,要进入相应目录 $SPARK_HOME/python/lib/ 下具体查看确定具体名称,再对PYTHONPATH环境变量的相应值加以修改。PYSPARK_PYTHON变量主要是设置Pyspark运行的Python版本。另外,如果环境中未安装Python3环境,需要手动执行命令yum -y install python3进行安装,后面才可正常进入到Pyspark终端。
步骤4: 按 Esc 键退回一般模式,然后输入 :wq 命令并回车保存退出文件。
image.png
执行以下命令使变量立即生效:

source ~/.bashrc

image.png
步骤5: 将 spark 目录下的所有文件的给予权限。执行以下命令:

cd /opt

image.png

sudo chmod -R 777 spark/*

image.png
步骤6: 通过运行Spark自带的一个示例程序,验证Spark是否安装成功。在终端中执行以下命令:

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

image.png
输入后显示:Pi is roughly 3.1381756908784544
正确输出类似如上信息则安装无误。

2.3 配置 Spark

切换到 Spark 的 conf 目录下并查看。执行以下命令:

cd /opt/spark/conf/

image.png

ls

image.png
可发现 conf 目录下有配置文件模板 spark-env.sh.template 和 spark-defaults.conf.template 等。

2.4 创建配置文件 spark-env.sh

在 Spark 的 conf 目录下执行以下命令:

cp -r spark-env.sh.template spark-env.sh

image.png

vim spark-env.sh

输入后显示:
image.png
进入 Vim 编辑界面,按 i 键之后进入编辑状态,在文件首行中补充如下路径的信息:

export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath)

image.png
上面这条配置信息的作用是让Spark具备从Hadoop分布式文件系统HDFS读、写数据的能力;如果没有配置上面信息,Spark就只能读写本地数据,无法读写HDFS数据。配置完成的文件如图所示。
然后,按键盘上的 ESC 键退出 Vim 的编辑状态,再输入 :wq,保存并退出 Vim 编辑器。
image.png

3. pyspark 启动

由于设置了 PYSPARK_PYTHON 环境变量,可以在任意路径下直接执行以下命令启动 Pyspark:

pyspark

image.png
启动 Pyspark 后,就会进入到 >>>命令提示符状态,Pyspark的终端。 从上图可以看到 Spark 的版本号为2.3.3,Python版本为3.6.8。现在就可以在Pyspark的终端中输入Python代码进行调试了。如图所示。
image.png
在Pyspark的终端中输入exit()可退出Pyspark终端。
image.png

4. 建立/user/spark文件夹

Hadoop中的许多组件在运行时会在HDFS上生成许多临时文件存储在/tmp文件夹中。
Spark应用历史服务在运行时会将一些数据存储在HDFS上的/user/spark/applicationHistory文件夹中。
使用hdfs dfs -mkdir命令创建文件夹/user/spark/applicationHistory以及hdfs dfs -chown命令将文件夹所有权移交给spark用户。

hdfs dfs -mkdir -p /user/spark/applicationHistory
hdfs dfs -chown -R spark /user/spark

image.png

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

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

相关文章

Redis 八股文

标题 1. Redis主从同步原理:判断下线的条件:故障转移如何保证Sentinel高可用 1. Redis主从同步原理: 1、slave执行命令向master建立连接 2、master执行bgsave(后台存储),生成rdb快照(redis备份方式&#x…

基于STM32F407ZG的FreeRTOS移植

1.从FreeRTOS官网中下载源码 2、简单分析FreeRTOS源码目录结构 2.1、简单分析FreeRTOS源码根目录 (1)Demo:是官方为一些单片机移植FreeRTOS的例程 (2)License:许可信息 (3)Sourc…

如何使用C++调用Pytorch模型进行推理测试:使用libtorch库

如何使用C调用Pytorch模型进行推理测试:使用libtorch库 目录 如何使用C调用Pytorch模型进行推理测试:使用libtorch库一、环境准备1,linux:以ubuntu 22.04系统为例1. 准备CUDA和CUDNN2. 准备C环境3, 下载libtorch文件4, 编写测试li…

开发者评测|操作系统智能助手OS Copilot

操作系统智能助手OS Copilot 文章目录 操作系统智能助手OS CopilotOS Copilot 是什么优势功能 操作步骤创建实验重置密码创建Access Key配置安全组安装 os-copilot环境变量配置功能评测命令行模式多轮交互模式 OS Copilot 产品体验评测反馈OS Copilot 产品功能评测反馈 参考文档…

【鸿蒙学习笔记】Stage模型工程目录

官方文档:应用配置文件概述(Stage模型) 目录标题 FA模型和Stage模型工程级目录模块级目录app.json5module.json5程序执行流程程序基本结构开发调试与发布流程 FA模型和Stage模型 工程级目录 模块级目录 app.json5 官方文档:app.j…

【笔记】记一次在linux上通过在线安装mysql报错 CentOS 7 的官方镜像已经不再可用的解决方法+mysql配置

报错(恨恨恨恨恨恨恨!!!!!): [rootlocalhost ~]# sudo yum install mysql-server 已加载插件:fastestmirror, langpacks Determining fastest mirrors Could not retrie…

MWC上海展 | 创新微MinewSemi携ME54系列新品亮相Nordic展台

6月28日, 2024MWC上海圆满落幕,此次盛会吸引了来自全球124个国家及地区的近40,000名与会者。本届大会以“未来先行(Future First)”为主题,聚焦“超越5G”“人工智能经济”“数智制造”三大子主题,探索讨论…

AI语音工具——Fish Speech:使用简单,可训练专属语音模型!

今天给大家介绍一款超好用的AI语音工具——Fish Speech,使用简单,还可以训练自己的语音模型! 工具介绍 Fish Speech是由 Fish Audio 开发的免费开源文本转语音模型。经过十五万小时的数据训练,Fish Speech能够熟练掌握中文、日语…

【Docker系列】Docker 镜像构建中的跨设备移动问题及解决方案

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

前端实现无缝自动滚动动画

1. 前言: 前端使用HTMLCSS实现一个无缝滚动的列表效果 示例图: 2. 源码 html部分源码: <!--* Author: wangZhiyu <w3209605851163.com>* Date: 2024-07-05 23:33:20* LastEditTime: 2024-07-05 23:49:09* LastEditors: wangZhiyu <w3209605851163.com>* File…

数据分析:基于STAR+FeatureCounts的RNA-seq分析全流程流程

流程主要包含两部分组成&#xff1a; 第一部分&#xff1a;二代测序数据的Raw data的fastq文件转换成Gene Count或者Features Counts表&#xff08;行是Features&#xff0c;列是样本名&#xff09;&#xff1b;第二部分&#xff1a;对counts 表进行统计分析&#xff0c;并对其…

印尼网络安全治理能力观察

在全国国际机场的移民服务完全瘫痪 100 多个小时后&#xff0c;印尼政府承认其新成立的国家数据中心 (PDN) 遭受了网络攻击。 恶意 Lockbit 3.0 勒索软件加密了存储在中心的重要数据&#xff0c;其背后的黑客组织要求支付 800 万美元的赎金。 不幸的是&#xff0c;大多数数据…

纸电混合阶段,如何在线上实现纸电会档案的协同管理?

随着国家政策的出台和引导&#xff0c;电子会计档案的管理越来越规范&#xff0c;电子会计档案建设成为打通财务数字化最后一公里的重要一环。但是&#xff0c;当前很多企业的财务管理仍处于电子档案和纸质档案并行的阶段&#xff0c;如何能将其建立合理清晰关联&#xff0c;统…

Hugging Face 全球政策负责人首次参加WAIC 2024 前沿 AI 安全和治理论坛

Hugging Face 全球政策负责人艾琳-索莱曼 &#xff08; Irene Solaiman &#xff09;将参加7月5日在上海举办的WAIC-前沿人工智能安全和治理论坛&#xff0c;并在现场进行主旨演讲和参加圆桌讨论。具体时间信息如下&#xff1a;主旨演讲&#xff1a;开源治理的国际影响时间 &am…

Spring框架Mvc(2)

1.传递数组 代码示例 结果 2.集合参数存储并进行存储类似集合类 代码示例 postman进行测试 &#xff0c;测试结果 3.用Json来对其进行数据的传递 &#xff08;1&#xff09;Json是一个经常使用的用来表示对象的字符串 &#xff08;2&#xff09;Json字符串在字符串和对象…

Java项目:基于SSM框架实现的共享客栈管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的共享客栈管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

20行代码写一个简单 Blazor 时钟组件

群里有些同学询问怎么实现定时刷新界面, 那咱们写点试试看能不能达到需求. 代码比较简单, 就是Task每秒刷新页面. 然后封装为组件实现只局部刷新. Demo TimerAme.razor <p>Label DateTime.Now.ToLongTimeString()</p>TimerAme.razor.cs using Microsoft.AspNet…

计算机应用数学--第三次作业

第三次作业计算题编程题1 基于降维的机器学习2 深度学习训练方法总结 第三次作业 计算题 (15 分&#xff09;对于给定矩阵 A A A&#xff08;规模为 42&#xff09;&#xff0c;求 A A A 的 SVD&#xff08;奇异值分解&#xff09;&#xff0c;即求 U U U&#xff0c; Σ …

YOLOX算法实现血细胞检测

原文:YOLOX算法实现血细胞检测 - 知乎 (zhihu.com) 目标检测一直是计算机视觉中比较热门的研究领域。本文将使用一个非常酷且有用的数据集来实现YOLOX算法,这些数据集具有潜在的真实应用场景。 问题陈述 数据来源于医疗相关数据集,目的是解决血细胞检测问题。任务是通过显微…

vue require引入静态文件报错

如果是通过向后端发送请求&#xff0c;动态的获取对应的文件数据流很容易做到文件的显示和加载。现在研究&#xff0c;一些不存放在后端而直接存放在vue前端项目中的静态媒体文件如何加载。 通常情况下&#xff0c;vue项目的图片jpg&#xff0c;png等都可以直接在/ass…