Ubuntu22.04下在Spark2.4.0中采用Local模式配置并启动pyspark

目录

一、前言

二、版本信息

三、配置相关文件

1.修改spark-env.sh文件

2.修改.bashrc文件

四、安装Python3.5.2并更改默认Python版本

1.查看当前默认Python版本

2.安装Python3.5.2

2.1 下载Python源码

2.2 解压源码

2.3 配置安装路径

2.4 编译和安装

2.5 验证安装

2.6 创建 Python 符号链接

五、启动Pyspark


一、前言

pyspark提供了简单的方式来学习API,并且提供了交互的方式来分析数据。你可以输入一条语句,pyspark 会立即执行语句并返回结果,这就是我们所说的交互式解释器( Read-Eval-Print Loop,REPL )。它为我们提供了交互式执行环境,表达式计算完成以后就会立即输出结果,而不必等到整个程序运行完毕。因此可以即时查看中间结果并对程序进行修改,这样一来, 就可以在很大程度上提高程序开发效率。Spark支持Scala和Python,由于Spark框架本身就是使用Scala语言开发的,所以,使用spark-shell命令会默认进入Scala的交互式执行环境。如果要进入Python的交互式执行环境,则需要执行pyspark命令。
与其他Shell工具不一样的是,在其他Shell工具中,我们只能使用单机的硬盘和内存来操作数据,而pyspark可用来与分布式存储在多台机器上的内存或者硬盘上的数据进行交互,并且处理过程的分发由Spark自动控制完成,不需要用户参与。

在配置pyspark之前默认读者已经安装Spark2.4.0到/usr/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

Python版本:Python 3.5.2

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

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

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

三、配置相关文件

1.修改spark-env.sh文件

修改Spark的配置文件spark-env.sh:

cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
vim ./conf/spark-env.sh
  • 在第一行添加以下配置信息并保存:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

这条配置信息的作用是将Hadoop的类路径设置到环境变量SPARK_DIST_CLASSPATH中,确保Spark可以访问Hadoop的所有必需类库和配置。这对于在Hadoop集群上运行Spark作业,或者需要访问存储在HDFS上的数据时尤为重要。

有了上面的配置信息以后,Spark就可以把数据存储到Hadoop分布式文件系统(HDFS)中,可以从HDFS中读取数据。如果没有配置上面的信息,Spark就只能读写本地数据,无法读写HDFS中的数据。

2.修改.bashrc文件

.bashrc文件中必须包括以下环境变量的设置:

  • JAVA_HOME
  • HADOOP_HOME
  • SPARK_HOME
  • PYTHONPATH
  • PYSPARK_PYTHON
  • PATH

如果读者已经设置了这些环境变量则不需要重新添加设置;如果还没有设置,则需要使用vim编辑器打开.bashrc文件,命令如下:

vim ~/.bashrc

把该文件修改为如下内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:/usr/local/hbase/bin
export HADOOP_HOME=/usr/local/hadoop
export SPARK_HOME=/usr/local/spark
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/1ib/py4j-0.10.7-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH

在上述设置中,PYTHONPATH环境变量主要是为了在python3中引入pyspark库,PYSPARK_PYTHON变量主要用于设置pyspark运行的Python版本。需要注意的是,在PYTHONPATH中,出现了py4j-0.10.7-src.zip,这个文件名必须与“/usr/local/spark/python/lib”目录下的py4j-0.10.7-src.zip保持一致。

最后,需要在Linux终端中执行如下代码让该环境变量生效:

source ~/.bashrc

四、安装Python3.5.2并更改默认Python版本

在启动pyspark之前我们需要注意Ubuntu22.04所自带的python3的版本为3.10.12!!!该版本与我们所使用的Spark2.4.0版本并不兼容!!!故需安装Python3.5.2

1.查看当前默认Python版本

在终端中输入python3(并不是python,具体原因可移步于本人的另一篇文章:Ubuntu进入python时报错:找不到命令 “python”,“python3” 命令来自 Debian 软件包 python3-CSDN博客)即可看到当前系统中默认的python版本是 3.10.12:

输入exit()命令并按回车键或使用快捷键Ctrl+D退出Python 3的交互式会话并返回到系统的命令行界面。

同样进入/usr/bin目录下搜索python可以看到python的可执行文件的版本:

2.安装Python3.5.2

2.1 下载Python源码

Python3.5.2的源代码压缩包请读者自行到Python官网下载或者从本文章中二、版本信息的百度网盘中进行下载

下载完成后将文件从物理机拖拽到虚拟机Ubuntu22.04系统中的家目录下的下载文件夹中:

2.2 解压源码

在终端中进入下载目录,解压 Python 源码文件:

cd ~/下载
tar -zxvf Python-3.5.2.tgz

2.3 配置安装路径

进入解压后的 Python 源码目录,并执行以下命令进行配置,指定安装路径为 /usr(注意:若不指定安装路径,默认安装路径为/usr/local):

cd ./Python-3.5.2
./configure --prefix=/usr

2.4 编译和安装

接着,执行以下命令编译和安装 Python:

make
sudo make install

2.5 验证安装

最后,运行以下命令验证 Python 是否已成功安装到 /usr/bin 中:

python3 --version

再次查看Python默认版本即可看到已经更改为Python3.5.2:

2.6 创建 Python 符号链接

确保系统中有正确的 Python 符号链接指向要使用的 Python 版本:

sudo ln -s /usr/bin/python3 /usr/bin/python

五、启动Pyspark

完成上述安装及配置后启动Pyspark:

可以看到启动成功!!!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性dp:P2679 子串

1.P2679 子串 传送门https://www.luogu.com.cn/problem/P2679这道题是公共子串问题的变种,但是我第一时间确实没想到转移方程(写少了) 一开始看了题解也没太看懂,直到自己模拟一遍(模拟数据便于理解原理)…

从硬件角度看Linux的内存管理

1. 分页机制 分段机制的地址映射颗粒度太大,以整个进程地址空间为单位的分配方式导致内存利用率不高。 分页机制把这个分配机制的单位继续细化为固定大小的页(Page),进程的虚拟地址空间也按照页来分割,这样常用的数据和代码就可以以页为单位…

VLAN实验报告

实验要求: 实验参考图: 实验过程: r1: [r1]int g 0/0/0.1 [r1-GigabitEthernet0/0/0.1]ip address 192.168.1.1 24 [r1-GigabitEthernet0/0/0.1]dot1q termination vid 2 [r1-GigabitEthernet0/0/0.1]arp broadcast enable [r1]int g 0/0/…

131. 分割回文串(力扣LeetCode)

文章目录 131. 分割回文串题目描述回溯代码 131. 分割回文串 题目描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入&#xf…

#WEB前端(DIV、SPAN)

1.实验&#xff1a;DIV、SPAN 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; 类? 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdev…

详细讲解Docker架构的原理、功能以及如何使用

一、简介 1、了解docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化&#xff0c;以便隔离进程和资源&#xff0c;而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中&…

Ps:历史记录面板

Ps菜单&#xff1a;窗口/历史记录 Window/History 历史记录 History面板提供了对图像编辑过程中所进行更改的深入控制&#xff0c;可以让用户回溯并查看每一步操作&#xff0c;从而允许用户轻松撤销错误或比较不同的编辑效果。 ◆ ◆ ◆ 常用操作方法与技巧 “历史记录”面板…

Redis之十:Spring Data Redis --- CrudRepository方式

SpringData Redis CrudRepository方式 Spring Data Redis 的 CrudRepository 是 Spring Data 框架中用于提供基础 CRUD&#xff08;创建、读取、更新和删除&#xff09;操作的一个接口。在与 Redis 集成时&#xff0c;尽管 Redis 是一个键值存储系统&#xff0c;并没有像关系型…

对象锁与类锁

不同锁互不影响&#xff0c;共用一个锁&#xff0c;可能会发生阻塞。 1.在修饰静态方法时&#xff0c;锁定的是当前类的 Class 对象&#xff0c;在下面的例子中就是SycTest1.class 2.当修饰非静态方法时&#xff0c;锁定的就是 this 对象&#xff0c;即当前的实例化对象 public…

基于springboot实现计算机类考研交流平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现计算机类考研交流平台系统演示 摘要 高校的大学生考研是继高校的高等教育更上一层的表现形式&#xff0c;教育的发展是我们社会的根本&#xff0c;那么信息技术的发展又是改变我们生活的重要因素&#xff0c;生活当中各种各样的场景都存在着信息技术的发展。…

chrome选项页面options page配置

options 页面用以定制Chrome浏览器扩展程序的运行参数。 通过Chrome 浏览器的“工具 ->更多工具->扩展程序”&#xff0c;打开chrome://extensions页面&#xff0c;可以看到有的Google Chrome扩展程序有“选项Options”链接&#xff0c;如下图所示。单击“选项Options”…

如何使用数据可视化库 D3 绘制折线统计图

如题&#xff0c;如何使用数据可视化库 D3 绘制折线统计图&#xff1f; 这篇文章将通过实例来讲解如何一步一步绘制下面这样一个折线统计图&#xff0c;并带有鼠标悬浮移动的文字显示效果。 首先&#xff0c;我们来看下什么是 d3&#xff1f;移步官网&#xff1a;https://d3js.…