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

news2024/10/1 19:41:03

目录

一、前言

二、版本信息

三、配置相关文件

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.coloradmin.cn/o/1484756.html

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

相关文章

走进SQL审计视图——《OceanBase诊断系列》之二

1. 前言 在SQL性能诊断上,OceanBase有一个非常实用的功能 —— SQL审计视图(gv$sql_audit)。在OceanBase 4.0.0及更高版本中,该功能是 gv$ob_sql_audit。它可以使开发和运维人员更方便地排查在OceanBase上运行过的任意一条SQL,无论这些SQL是成…

最近半年博客产出的反思

最近完善boss资料的时候,我认为自己在大学期间学习过程中经常用博客记录学习内容以及在学习过程中写博客笔记是个不错的好习惯,在询问了师傅的意见之后决定把CSDN的主页也挂上去。 非常荣幸平台上今天有一位老师看见我的简历之后主动和我交流。对我的博客…

Sora来袭!机器人+Sora落地性如何?

2022年底,OpenAI正式推出ChatGPT,这款由人工智能技术驱动的自然语言处理工具能够通过学习和理解人类的语言来进行对话 。ChatGPT是OpenAI迈出的第一步,这款让所有人都能体会到人工智能潜力的现象级产品,展现出了文字对于过去人工智…

Xcode15与苹果ios17适配以及遇到的问题

大家好,我是你们的好朋友咕噜铁蛋!最近,苹果发布了全新的iOS17系统,而作为开发者,我们需要确保我们的应用程序能够与这个新系统完美适配。因此,今天我将和大家分享一些关于Xcode15与苹果17系统适配的经验&a…

手写 Attention 迷你LLaMa2——LLM实战

https://github.com/Yuezhengrong/Implement-Attention-TinyLLaMa-from-scratch 1. Attention 1.1 Attention 灵魂10问 你怎么理解Attention? Scaled Dot-Product Attention中的Scaled: 1 d k \frac{1}{\sqrt{d_k}} dk​ ​1​ 的目的是调节内积&…

Parallel Computing - 一文讲懂并行计算

目录 Throughput/LatencySerial ComputingParallel ComputingTypes of parallel computersSimple 4-width SIMDAmdahls lawTypes of parallelism**Data Parallel Model**Task parallel PartitioningDomain DecompositionFunctional Decomposition CommunicationsExample that d…

Android 基础入门 基础简介

1. 观察App运行日志 2.Android 开发设计的编程语言 koltin Java c c 3.工程目录结构 4.Gradle 5.build.gradle 文件解析 plugins {id("com.android.application")//用了哪些插件 主配置文件版本控制 所以这里不用写版本 }android {namespace "com.tiger.myap…

unity学习(44)——选择角色菜单——顺利收到服务器的数据

本节的思路参考自,内容并不相同:13ARPG网络游戏编程实践(十三):角色选择UI及创建面板制作(四)_哔哩哔哩_bilibili 现在的代码写在MessageManager.cs中,函数名UserHandler(是从OnMess…

mongodb 图形界面工具 -- Studio 3T(下载、安装、连接mongodb数据库)

目录 mongodb 图形界面工具 -- Studio 3T下载安装第一次使用:注册添加一个连接(连接 mongodb 数据库)1、点击【添加新连接】,选择【手动配置我的连接设置】2、对 Server 设置连接数据3、连接的用户认证设置(创建数据库…

【系统分析师】-需求工程

一、需求工程 需求工程分为需求开发和需求管理。 需求开发:需求获取,需求分析,需求定义、需求验证。 需求管理:变更控制、版本控制、需求跟踪,需求状态跟踪。(对需求基线的管理) 1.1需求获取…

BUGKU 网站被黑

打开环境,什么都没发现,使用蚁剑扫描一下,发现shell.php,打开 使用BP抓包,进行爆破 得到密码:hack 进去得到flag

【python】1.python3.12.2和pycharm社区版的安装指南

欢迎来CILMY23的博客喔,本篇为【python】1.python3.12.2和pycharm社区版的安装指南,感谢观看,支持的可以给个一键三连,点赞关注收藏。 目录 一、python3.12.2的下载与安装 1.1下载 1.2安装 二、pycharm的安装 2.1下载安装 2…

Home-credit海外贷款信贷产品源码/线上贷款产品大全/贷款平台软件源码/海外借贷平台

测试环境:Linux系统CentOS7.6、宝塔、PHP7.3、MySQL5.6,根目录public,伪静态laravel5,开启ssl证书 语言:中文简体、英文 laravel框架的程序有点多,这个团队估计主要就是搞laravel开发的,基本上…

Redis持久化+Redis内存管理和优化+Redis三大缓存问题

Redis持久化Redis内存管理和优化Redis三大缓存问题一、Redis高可用二、Redis持久化1、RDB持久化1.1 触发条件(1) 手动触发(2) 自动触发(3) 其他自动触发机制 1.2 执行流程1.3 启动时加载 2、AOF持久化2.1 开启AOF2.2 执行流程(1) 命令追加(append)(2) 文件写入(write)和文件同步…

Leetcode630. 课程表 III

Every day a Leetcode 题目来源:630. 课程表 III 解法1:反悔贪心 经验告诉我们,在准备期末考试的时候,先考的课程先准备。同理,lastDay 越早的课程,应当越早上完。但是,有的课程 duration 比…

MATLAB环境下基于图像处理的计算病理学图像分割(MATLAB R2021B)

人工智能是病理学诊断和研究的重要新兴方法,其不仅可用于病理形态数据分析,还可整合免疫组化、分子检测数据和临床信息,得出综合的病理诊断报告,为患者提供预后信息和精准的药物治疗指导。计算病理学是病理学与AI、计算机视觉等信…

DSI2协议之BTA行为理解

概念: DSI协议spec支持总线控制权在master和slave之间发生交换,即通过bus turn around来实现; BUS TURN AROUND: BTA 的实现是通过controller—>cdphy的turnrequest信号来实现; 关于控制器发出turnrequest给phy,phy通过lvds/trio线输出turnaround sequence如下图中…

设计一基于Text generation web UI的语言模型部署与远程访问的方案​

前言 Text generation web UI可为类ChatGPT的大型语言模型提供能够快速上手的网页界面,不仅可以提高使用效率,还可满足私有化部署,或对模型进行自定义。目前,该Web UI已经支持了许多流行的语言模型,包括LLaMA、llama.…

ABAP - SALV教程06 - 列的设置(隐藏、修改、优化列宽)

SAVL要想像Function ALV或OO ALV那样设置Fieldcat,也是有方法的。通过取得全体列的类引用 CL_SALV_COLUMNS来进行修改 METHOD set_columns.* 取得全部列的对象DATA(lo_cols) co_alv->get_columns( ).* 设置自动优化列宽度lo_cols->set_optimize( X ).T…

js监听网页iframe里面元素变化其实就是监听iframe变化

想要监听网页里面iframe标签内容变化,需要通过监听网页dom元素变化,然后通过查询得到iframe标签,再通过iframe.contentWindow.document得到ifram内的document,然后再使用选择器得到body元素,有了body元素,就…