Windows环境本地配置pyspark环境详细教程

目录

  • 一、背景简记
  • 二、本地单机spark环境配置详细步骤
    • 第一步:python环境安装
    • 第二步:安装jdk及配置环境变量
      • 安装包下载安装
      • 环境变量配置
    • 第三步:安装Spark
      • 安装包下载安装
      • 配置环境变量
    • 第四步:安装hadoop
      • 安装包下载安装
      • 配置环境变量
    • 第五步:环境测试
      • 测试hadoop环境变量是否配置成功
      • spark环境变量是否生效与本地spark是否安装成功
      • 测试winutils.exe 版本是否与操作系统兼容
    • 第六步:python环境安装pyspark
  • 三、本地远程集群相关配置操作方式
    • 配置本地window的hosts文件连接集群
    • Windows下Spyder远程连接pyspark配置
    • Windows下pyspark连接Hbase操作
  • 四、本地spyder测试本地pyspark
  • 五、结语
  • 参考教程


一、背景简记

windows环境是绝大部分比较熟悉的操作系统,作为想开始入门学习spark的数据人员来说,想在python的基础上,进一步掌握学习spark的技术。那在windows环境配置好pyspark,不失为一种最优的学习方式。本文也是基于此,将个人在windows环境配置pyspark的过程进行详细记录,以便后续在其它电脑上快速配置。当然,如果能够帮助到和自己同样需求的其它朋友,当然也不甚荣幸。下面开始正题。

本文提到的所有软件,已整理放在csdn资源处,当然也可以关注微信公众号【慕匠心】,回复关键字【spark】获取下载方式。

二、本地单机spark环境配置详细步骤

注意:所有软件的安装目录,尽量避免留有任何空格,以免后期方式各种不可预期的问题
在这里插入图片描述

第一步:python环境安装

现在我们习以为常的安装python环境的方式,就是通过安装anaconda来实现,因此具体的annconda的过程不做记录,整体简单,当然,网上也有很多详细的安装教程。anaconda下载地址:https://repo.anaconda.com/archive/,博主所用的anaconda版本为:Anaconda3-2023.09-0-Windows-x86_64.exe,对应的python版本是3.11.11。
如下图所示:
在这里插入图片描述

注意事项:可以查看下系统的环境变量Path,确认下Anaconda路径有没有添加进去,如下图标注所示:

在这里插入图片描述

第二步:安装jdk及配置环境变量

安装包下载安装

jdk的下载地址:https://www.oracle.com/java/technologies/downloads/#java8,根据电脑系统情况,选择下载对应的安装包。
在这里插入图片描述
博主安装的jdk安装包:jdk-8u172-windows-x64.exe,对应的jdk版本:1.8.0。上面的截图对应的版本也可以。

下载后安装包后,直接双击安装即可。安装完成后,命令行中执行:java -version ,确认是否配置成功,如下图所示:
在这里插入图片描述

环境变量配置

jdk安装好后,有几个环境变量需要配置:

新增环境变量JAVA_HOME
JAVA_HOME: D:\JDK(该值根据安装路径,修改即可)

在这里插入图片描述

Path路径新增信息:
Path: %JAVA_HOME%\bin(直接粘贴该路径即可)

在这里插入图片描述

如果没有CLASSPATH环境变量,则新增
CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\bin;(直接粘贴该路径即可)

在这里插入图片描述

第三步:安装Spark

安装包下载安装

spark安装包下载地址:https://archive.apache.org/dist/spark/,博主所用的spark版本为:spark-3.5.0-bin-hadoop3.tgz,将其解压放在个人想存放的目录中。

配置环境变量

spark安装包解压后,记住解压存放地址,配置环境变量会用到。

新建环境变量:SPARK_HOME
SPARK_HOME: D:\bigdataenv\spark-3.5.0-bin-hadoop3(该值根据存放路径,修改即可)

在这里插入图片描述

新建环境变量:HADOOP_HOME
HADOOP_HOME: D:\bigdataenv\spark-3.5.0-bin-hadoop3 (现有的spark安装包都配置了hadoop,所以路径和SPARK_HOME路径相同)

在这里插入图片描述

Path路径新增信息:
Path: %SPARK_HOME%\bin(直接粘贴该路径即可)

在这里插入图片描述

新增环境变量:PYSPARK_DRIVER_PYTHON
PYSPARK_DRIVER_PYTHON: ipython

在这里插入图片描述
PYSPARK_DRIVER_PYTHON,设置成ipython后,pyspark交互模式变为ipython的交互模式,如下图所示(需要安装完pyspark后才有):
在这里插入图片描述

第四步:安装hadoop

安装包下载安装

hadoop安装包下载地址:https://archive.apache.org/dist/hadoop/common/,选择与spark对应的版本。博主所用的hadoop版本为:hadoop-3.0.0.tar.gz,将其解压放在个人想存放的目录中。
在这里插入图片描述

配置环境变量

hadoop安装包解压后,记住解压存放地址,配置环境变量会用到。

新建环境变量:HADOOP_HOME
HADOOP_HOME: D:\bigdataenv\hadoop-3.0.0(该值根据存放路径,修改即可)

在这里插入图片描述

Path路径新增信息:
Path: %HADOOP_HOME%\bin(直接粘贴该路径即可)

在这里插入图片描述
此时bin目录( D:\bigdataenv\hadoop-3.0.0\bin)下可能没有 hadoop.dll及winutils.exe文件,

  • 需要进行下载winutils :https://soft.3dmgame.com/down/204154.html
  • 解压文件,选择hadoop版本对应的文件夹bin目录下的hadoop.dll和winutils.exe文件
  • 将hadoop.dll和winutils.exe 拷贝到D:\bigdataenv\hadoop-3.0.0\bin 、C:\Windows\System32、D:\bigdataenv\spark-3.5.0-bin-hadoop3\bin 下(两个文件各拷贝一份到三个目录中)

在这里插入图片描述

第五步:环境测试

测试hadoop环境变量是否配置成功

测试方式:在cmd输入 hadoop version,出现如下界面,说明hadoop环境变量配置成功。

在这里插入图片描述

spark环境变量是否生效与本地spark是否安装成功

测试方式:继续在上述命令行中执行 spark-shell,出现如下界面结果,说明spark系统环境变量配置成功。

在这里插入图片描述

如有报错,可参看博文《windows下Pyspark开发环境搭建》 解决方式。

测试winutils.exe 版本是否与操作系统兼容

测试方式:在命令行中执行:cd /d %SPARK_HOME%\bin切换到指定目录,然后执行:winutils.exe ls,结果如下图所示。

在这里插入图片描述
如果有弹窗提示,可以从网上再找下对应hadoop版本的winutils.exe即可。

第六步:python环境安装pyspark

如果已安装的python版本和本文提供的版本不一致,可以新建一个python版本环境。当然,保险起见,无论是否一致,都可以在anaconda中新建一个python环境,如下图所示,可以建立指定版本的python环境;

在这里插入图片描述

然后,启动Anaconda Prompt ,执行 conda activate 新建的环境名称 ,如下图所示,确认新环境启动成功。

在这里插入图片描述

然后执行:pip install pyspark py4j ,安装pyspark和py4j模块(因博主已安装,所以提示如下图)

在这里插入图片描述

三、本地远程集群相关配置操作方式

因暂无可直连配置的集群,因此参考博文《windows下Pyspark开发环境搭建》[^2] 信息,暂时整理记录如下,以便后续使用。

配置本地window的hosts文件连接集群

将集群各节点IP对应别名,配置在windows下的hosts文件中,从而可以本地直连使用集群环境。

第一步:查看linux集群各节点信息。执行命令:cat /etc/hosts

在这里插入图片描述

第二步:配置到windows下的hosts文件。本地host文件目录 : C:\Windows\System32\Drivers\etc\hosts 添加集群节点信息

在这里插入图片描述

第三步:对每个节点做如下同样的测试,保证各节点ping通。

在这里插入图片描述

第四步:将集群相关配置文件同步window本地。由于要远程连接Linux集群,需要远程服务器上以下四个配置文件同步到**%SPARK_HOME%\conf**目录下,四个配置文件如下:

core-site.xml --由于hdfs是基本框架,两个都个同步
hdfs-site.xml
yarn-site.xml --作远程操作要使用
hive-site.xml --有hive操作则要同步

第五步:设置环境变量YARN_CONF_DIR。环境变量设置结果如下:

在这里插入图片描述

**第六步:测试远程连接spark。**命令 pyspark --master yarn --deploy-mode client --name ‘test’,如下,则说明成功了。

在这里插入图片描述在这里插入图片描述

第七步:如果报错,则设置环境变量YARN_CONF_DIR。环境变量设置结果:YARN_CONF_DIR :%SPARK_HOME%\conf

在这里插入图片描述

Windows下Spyder远程连接pyspark配置

针对全局:

  • 将 %SPARK_HOME%\python\lib 目录下 py4j-0.10.6-src.zip 与 pyspark.zip解压缩;
  • 然后放到anaconda目录 D:\ProgramData\anaconda3\Lib\site-packages 目录下即可。

针对指定环境:
在放在指定环境的Lib\site-packages 目录下。(ps:pip install py4j pyspark后,该目录下也会有配置信息,可以启动对应环境的spyder,即可调用)

Windows下pyspark连接Hbase操作

连接Hbase需要集群相关的配置文件与jar包。

第一步:将集群上的hbase-site.xml配置文件同步到本地windows的 %SPARK_HOME%\conf 目录下

在这里插入图片描述

第二步:将连接hbase的集群相关jar同步到 %SPARK_HOME%\jars目录下

将集群上CDH的安装目录下对应hbase 的lib库目录下的jar饱全部同步下来,如下是我集群的目录:

  • /data/opt/cloudera-manager/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hbase/lib/
  • /data/opt/cloudera-manager/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hbase

不清楚在哪个安装目录,用以下命令在确定: find /data/ -name hbase*.jar

在这里插入图片描述

第三步:将metrics-core-2.2.0.jar 同步下来

在这里插入图片描述

第四步:将SHC编译好的shc-core-spark2.3.0-hbase1.2.0.jar也放在%SPARK_HOME%\jars目录下,并上传到集群上spark2安装目录下,这样就不需要在启动部署spark程序时指定jar包。

/data/opt/cloudera-manager/cloudera/parcels/SPARK2/lib/spark2/jars/

在这里插入图片描述

测试spyder连接测试集群是否成功。测试代码:

from pyspark.sql import SparkSession
import time
from pyspark import SQLContext

print("开始启动会话..................")
spark=SparkSession.builder \
	.master("yarn-client") \
	.appName('test spyder') \
	.config("spark.some.config.option", "some-value") \
	.config("spark.dynamicAllocation.enabled", "false") \
	.config("hive.exec.dynamic.partition.mode", "nonstrict") \
	.config("spark.executor.instances", "3")\
	.enableHiveSupport()\
	.getOrCreate()
print("完成启动会话..................")

dep = "org.apache.spark.sql.execution.datasources.hbase"
#查询表结构
catalog = """{
	"table":{"namespace":"default", "name":"student"},
	"rowkey":"key",
	"columns":{
	"rowkey":{"cf":"rowkey", "col":"key", "type":"string"},
	"age":{"cf":"info", "col":"age", "type":"string"},
	"name":{"cf":"info", "col":"name", "type":"string"}}
	}
"""

sql_sc = SQLContext(spark)
#从hbage表查询数据
df = sql_sc.read.options(catalog = catalog).format(dep).load()
#将表数据注册为临时表,并展示出来
df.createOrReplaceTempView("test1")
spark.sql("select * from test1").show()
spark.stop()

结果如下,则说明配置成功。
在这里插入图片描述
在这里插入图片描述

四、本地spyder测试本地pyspark

测试脚本1:

from pyspark.sql import SparkSession
import time

print("开始启动会话..................")
ss = SparkSession.builder \
    .appName("Test PySpark") \
    .master("local[*]") \
    .getOrCreate()
print("完成启动会话..................")

print("开始parallelize启动..................")
sc=ss.sparkContext
data=sc.parallelize(range(1000),7)
print(data.count())
print("结束parallelize..................")

ss.stop()

测试结果如下,说明成功了。
在这里插入图片描述

五、结语

本地学习使用pyspark,用上述描述的第二节内容**《二、本地单机spark环境配置详细步骤》**即可配置完成本地环境。每一次安装,可能都会遇到新问题,多尝试查找网上给的一些解决方案,终会找到出路!希望本文也可以给路过的你,有所帮助。
在这里插入图片描述

参考教程

  • 《windows搭建pyspark环境详细教程》
  • 《windows下Pyspark开发环境搭建》
  • https://repo.anaconda.com/archive/
  • https://soft.3dmgame.com/down/204154.html
  • https://archive.apache.org/dist/hadoop/common/
  • https://www.oracle.com/java/technologies/downloads/#java8

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

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

相关文章

智能家居篇 一、Win10 VM虚拟机安装 Home Assistant 手把手教学

智能家居篇 一、Win10 VM虚拟机安装 Home Assistant 手把手教学 文章目录 [智能家居篇]( )一、Win10 VM虚拟机安装 Home Assistant 手把手教学 前言一.下载Vm版本的HomeAsistant安装包 二.打开Vmware选择新建虚拟机1.选择自定义高级2.选择16.x及以上3.选择稍后安装4.根据官网的…

神经网络基础-正则化方法

文章目录 1. 什么是正则化2. 正则化方法2.1 Dropout正则化2.2 批量归一化(BN层) 学习目标: 知道正则化的作用掌握随机失活 DropOut 策略知道 BN 层的作用 1. 什么是正则化 在设计机器学习算法时希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小…

vmware虚拟机配置ubuntu 18.04(20.04)静态IP地址

VMware版本 :VMware Workstation 17 Pro ubuntu版本:ubuntu-18.04.4-desktop-amd64 主机环境 win11 1. 修改 VMware虚拟网络编辑器 打开vmware,点击顶部的“编辑"菜单,打开 ”虚拟化网络编辑器“ 。 选择更改设置&#…

前端【2】html添加样式、CSS选择器

一、为html添加样式的三种方法 1、内部样式 2、外部样式 3、行内样式 二、css的使用--css选择器 1、css基本选择器 元素选择器 属性选择器 id选择器 class/类选择器 通配符选择器 2、群组选择器-多方面筛选 3、关系选择器 后代选择器【包含选择器】 子元素选择器…

30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <3>5分钟集成好druid并使用druid自带监控工具监控sql请求

快速导航 <1> 5分钟快速创建一个springboot web项目 <2> 5分钟集成好最新版本的开源swagger ui&#xff0c;并使用ui操作调用接口 <3> 5分钟集成好druid并使用druid自带监控工具监控sql请求 <4> 5分钟集成好mybatisplus并使用mybatisplus generator自…

仿射密码实验——Python实现(完整解析版)

文章目录 前言实验内容实验操作步骤1.编写主程序2.编写加密模块3.编写解密模块4.编写文件加解密模块 实验结果实验心得实验源码scirpt.pyusefile.py 前言 实验目的 1&#xff09;初步了解古典密码 2&#xff09;掌握仿射密码的实现 实验方法 根据下图仿射密码&#xff08;变换…

在 QNAP NAS中使用 Container Station 运行 Docker 的完整指南

QNAP 为用户提供了一个名为 Container Station 的应用&#xff0c;它在 QNAP NAS 上将 Docker 和 LXC 结合在一起&#xff0c;通过图形化界面&#xff0c;让用户更轻松地在 NAS 上管理容器。本文将带你一步步了解如何在 QNAP NAS 上安装和使用 Container Station&#xff0c;以…

基于vite+vue3+mapbox-gl从零搭建一个项目

下面是基于 Vite、Vue 3 和 Mapbox GL 从零搭建一个项目的完整步骤&#xff0c;包括环境搭建、依赖安装、配置和代码示例。 文章目录 1. 初始化项目2. 安装 mapbox-gl 依赖3. 配置 Mapbox Access Token4. 实现地图组件5. 在 App.vue 中使用地图组件6. 启动开发服务器7. 添加自定…

运维作业一

1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容&#xff0c;不存在则创建一个文件将创建时间写入。 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 首先&#xff0c;获得随机字符&#xff0c;需下载pwgen&am…

【拒绝算法PUA】3065. 超过阈值的最少操作数 I

系列文章目录 【拒绝算法PUA】0x00-位运算 【拒绝算法PUA】0x01- 区间比较技巧 【拒绝算法PUA】0x02- 区间合并技巧 【拒绝算法PUA】0x03 - LeetCode 排序类型刷题 【拒绝算法PUA】LeetCode每日一题系列刷题汇总-2025年持续刷新中 C刷题技巧总结&#xff1a; [温习C/C]0x04 刷…

SSE部署后无法连接问题解决

1. 问题现象 通过域名访问 https://api-uat.sfxs.com/sse/subscribe?tokenBearer%20eyJUxMiJ9.eyJhY2NvdW50IjoiYWRtaWZ0NvZGUiOiIwMDEiLCJyb2xidXNlcm5hbWUiOiLotoXnuqfnrqHnkIblkZgifQ.tlz9N61Y4 一直无法正常连接 2. 问题解决 nginx.conf进行配置 server {location /ss…

JS宏进阶: 工厂函数与构造函数

一、构造函数 在JavaScript中&#xff0c;构造函数是一种用于创建和初始化对象的特殊函数。构造函数的名字通常以大写字母开头&#xff0c;以区分于普通函数。通过new关键字调用构造函数&#xff0c;可以创建一个新的实例对象&#xff0c;并自动执行构造函数内部的代码来初始化…

编译pytorch——cuda-toolkit-nvcc

链接 https://blog.csdn.net/wjinjie/article/details/108997692https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#switching-between-driver-module-flavorshttps://forums.developer.nvidia.com/t/can-not-load-nvidia-drivers-on-ubuntu-22-10/239750https://…

光谱相机的光谱分辨率可以达到多少?

多光谱相机 多光谱相机的光谱分辨率相对较低&#xff0c;波段数一般在 10 到 20 个左右&#xff0c;光谱分辨率通常在几十纳米到几百纳米之间&#xff0c;如常见的多光谱相机光谱分辨率为 100nm 左右。 高光谱相机 一般的高光谱相机光谱分辨率可达 2.5nm 到 10nm 左右&#x…

案例 —— 怪物出水

目录 一&#xff0c;Ocean Setup 二&#xff0c;Water Setup 解算前设置 解算设置 解算后设置 三&#xff0c;Meshing Setup Meshing 剔除外围边界mesh 应用低频频谱变形并添加变形速度 为whitewater创建自定义的surface、vel 清理属性和组并缓存 四&#xff0c;Wh…

怎么在iPhone手机上使用便签进行记录?

宝子们&#xff0c;在这个快节奏的时代&#xff0c;灵感的火花总是一闪而过&#xff0c;待办事项也常常让人应接不暇。好在咱们的 iPhone手机便签超给力&#xff0c;能满足各种记录需求&#xff01;今天就来给大家分享一下&#xff0c;如何在 iPhone 手机上巧用便签&#xff0c…

2025宝塔API一键建站系统PHP源码

源码介绍 2025宝塔API一键建站系统PHP源码&#xff0c;对接自己的支付&#xff0c;虚拟主机也能搭建&#xff0c;小白式建站系统&#xff0c;基于宝塔面板搭建的建站系统&#xff0c;功能丰富&#xff0c;多款模板&#xff0c;每日更新 上传源码到服务器&#xff0c;浏览器访问…

【C++】拷贝构造函数与运算符重载

写在前面 拷贝构造函数、赋值运算符重载、取地址运算符都是属于类的默认成员函数&#xff01; 默认成员函数是程序猿不显示声明定义&#xff0c;编译器会中生成。 在程序编写中&#xff0c;我们也经常使用拷贝的方式来获取到对应的值&#xff0c;例如整形变量拷贝int a 0; i…

Linux:SystemV通信

目录 一、System V通信 二、共享内存 代码板块 总结 三、信号量 信号量理论 信号量接口 一、System V通信 System V IPC&#xff08;inter-process communication&#xff09;&#xff0c;是一种进程间通信方式。其实现的方法有共享内存、消息队列、信号量这三种机制。 …

2025.1.15——七、cookie注入

题目来源&#xff1a;ctfhub技能树 目录 一、打开靶机&#xff0c;整理已知信息 二、解题步骤 step 1&#xff1a;按F12查看cookie信息&#xff0c;见上 step 2&#xff1a;bp抓包修改cookie信息&#xff0c;确认注入类型 step 3&#xff1a;查看字段数 step 4&#xff…