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:

可以看到启动成功!!!

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

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

相关文章

【计算机网络_应用层】协议定制序列化反序列化

文章目录 1. TCP协议的通信流程2. 应用层协议定制3. 通过“网络计算器”的实现来实现应用层协议定制和序列化3.1 protocol3.2 序列化和反序列化3.2.1 手写序列化和反序列化3.2.2 使用Json库 3.3 数据包读取3.4 服务端设计3.5 最后的源代码和运行结果 1. TCP协议的通信流程 在之…

c++/c图的邻近矩阵表示

#include<iostream> using namespace std;#define MaxVerterNum 100 typedef char VerterType; typedef int EdgeType; typedef struct {VerterType vexs[MaxVerterNum]; // 存储顶点EdgeType edges[MaxVerterNum][MaxVerterNum]; // 存储邻接矩阵int n, e; // 顶点数和边…

基于粒子群优化算法的图象聚类识别matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于粒子群优化算法的图象聚类识别。通过PSO优化方法&#xff0c;将数字图片的特征进行聚类&#xff0c;从而识别出数字0~9. 2.测试软件版本以及运行结果展示 M…

【NTN 卫星通信】使用地面网络和卫星网络接入的终端应用场景

1 场景概述 卫星接入有广覆盖的特点&#xff0c; 可以改善地面接入网覆盖或无线条件差的地区(例如多径干扰)的服务可用性。对于高速移动中需要实时业务的终端&#xff0c;如IMS语音/视频会议&#xff0c;可以通过地面接入和卫星接入同时实现与5G系统的双连接&#xff0c;在地面…

HTML教程(3)——常用标签(1)

一、图片标签 1.场景&#xff1a;在网页中显示图片 2.基本写法&#xff1a; <img src""> 3.特点&#xff1a;单标签&#xff0c;img标签需要展示对应的效果&#xff0c;需要借助其属性进行设置 4常用属性&#xff1a; src&#xff1a;其属性值为目标图片…

爬取博客的图片并且将它存储到响应的目录

目录 前言 思想 注意 不多说解释了&#xff0c;贴代码吧 config.json Get_blog_img.py 把之前的写的代码也贴上 Get_blog_id.py 主函数 main.py 运行结果 前言 在上一篇博客中我们介绍了如何爬取博客链接 利用python爬取本站的所有博客链接-CSDN博客文章浏览阅读74…

Docker使用数据卷自定义镜像Dockerfile

文章目录 一、数据卷二、Dockerfile自定义centos 一、数据卷 数据卷(Data Volumes)是一个可供一个或多个容器使用的特殊目录&#xff0c;它将主机操作系统目录直接映射进容器&#xff0c;它可以提供很多有用的特性&#xff1a; 1.数据卷 可以在容器之间共享和重用 2.对数据卷的…

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

我们接着上一节的示例内容&#xff0c;现在有如下需求&#xff0c;我们希望当我们按下某个按键时编辑器有所反应。这就需要我们对编辑器添加事件功能onKeyDown, 我们给 Editor添加事件&#xff1a; SDocor.jsx import { useState } from react; import { createEditor } from…

蓝桥杯练习系统(算法训练)ALGO-993 RP大冒险

资源限制 内存限制&#xff1a;64.0MB C/C时间限制&#xff1a;200ms Java时间限制&#xff1a;600ms Python时间限制&#xff1a;1.0s 问题描述 请尽情使用各种各样的函数来测试你的RP吧~~~ 输入格式 一个数N表示测点编号。 输出格式 一个0~9的数。 样例输入 0 样…

小乌龟操作Git

1、选择小乌龟作为git客户端 最近使用idea来操作git的时候频频出现问题&#xff0c;要么是提交代码的时候少了某些文件&#xff0c;导致克隆下来无法运行&#xff0c;要么是提交速度太慢。 反正是在idea中操作git体验非常不好&#xff0c;所以决定来换一种方式来操作git。从网…

利用FFMPEG 将RTSP流的音频G711 转码为AAC 并 推流到RTMP

之前我们的视频转码项目中 是没有加入音频的 现在 需要加入音频 &#xff0c;由于RTMP只支持AAC的 音频流 而有的RTSP流的音频编码并不是AAC 大多数都是G711编码 还分为G711A 和G711U 之前用ffmpeg命令行可以直接 完成转码 并推送到RTMP 但是考虑到无法获取更详细的状…

4.Java---方法+重载

方法 方法的调用是需要开辟内存的,方法调用结束内存就被销毁了. 下面将介绍一个经典的错误标准的0分的示意! 我们日常中写交换两个数字的代码的时候都会用如下的方法进行描述: 你是不是觉得自己写的特别对!终于可以独立写一个小小的函数了? 下面运行一下看看结果 哦莫!怎么…

解决ODOO12 恢复数据库提示内存不够报错

1. 现象 点击 ‘restore database’ 控制台报错&#xff1a; 2. 解决措施 a. 进入启动脚本的文件夹 cd odoo/odoo-12.0/输入命令 ./odoo-bin --addons-pathaddons --databaseodoo --db_userodoo --db_passwordodoo --db_hostlocalhost --db_port5432 -i INITb. 刷新页面…

【airtest】自动化入门教程(三)Poco操作

目录 一、准备工作 1、创建一个pthon脚本 2、光标位置 2、选择Android 3、选择yes 二、定位元素 三、poco基于设备/屏幕 方式 1、poco.click( (x,y))基于屏幕点击相对坐标为x&#xff0c;y的位置 2、poco.get_screen_size() 3、poco.swipe(v1,v2)基于屏幕从v1位置滑到…

图论 - 最短路(Dijkstra、Bellman-Ford、SPFA、Floyd)

文章目录 前言Part 1&#xff1a;朴素Dijkstra算法一、Dijkstra求最短路 I1.问题描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 2.算法 Part 2&#xff1a;堆优化Dijkstra算法一、Dijkstra求最短路 II1.题目描述输入格式输出格式数据范围输入样例&…

【学习笔记】Diffusion扩散模型

导读 Diffusion models是现在人工智能领域最火的方向之一&#xff0c;并引爆了AIGC领域&#xff0c;一大批创业公司随之诞生。 AIGC&#xff08;AI-Generated Content&#xff09;&#xff1a;人工智能创作内容的生产方式。 扩散模型Diffusion 扩散模型Duffison的训练过程 …

Redis【2】—— Redis特性 与 数据类型

Redis【2】—— Redis特性 与 数据类型 二、Redis 的基本介绍&#xff08;一&#xff09;关于 Redis1. 特性&#xff08;1&#xff09;在内存中存储数据&#xff08;2&#xff09;可编程&#xff08;3&#xff09;可扩展&#xff08;4&#xff09;持久化&#xff08;5&#xff…

场发射透射电子显微镜(FETEM)技术壁垒高 我国具备研制能力

场发射透射电子显微镜&#xff08;FETEM&#xff09;技术壁垒高 我国具备研制能力 场发射透射电子显微镜&#xff0c;简称场发射透射电镜&#xff0c;英文简称FETEM&#xff0c;产品主要由场发射电子枪、高压电源、照明透镜、偏转系统、物镜、投影镜、探测器、样品系统等组成。…

PlantUML简介

PlantUML简介 plantUML是一款开源的UML图绘制工具&#xff0c;支持通过文本来生成图形&#xff0c;使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制。你可以在IDEA中安装插件来使用PlantUML, 或者在Visual Studio Code中安装插件。 也可以在dra…

Nacos环境搭建 -- 服务注册与发现

为什么需要服务治理 在未引入服务治理模块之前&#xff0c;服务之间的通信是服务间直接发起并调用来实现的。只要知道了对应服务的服务名称、IP地址、端口号&#xff0c;就能够发起服务通信。比如A服务的IP地址为192.168.1.100:9000&#xff0c;B服务直接向该IP地址发起请求就…