千家信息网

怎么快速搭建Spark开发环境

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,怎么快速搭建Spark开发环境,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一,搭建本地pyspark单机练习环境以下过程本地单机版
千家信息网最后更新 2025年12月04日怎么快速搭建Spark开发环境

怎么快速搭建Spark开发环境,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。


一,搭建本地pyspark单机练习环境

以下过程本地单机版pyspark练习编程环境的配置方法。

注意:仅配置练习环境无需安装hadoop,无需安装scala.

1,安装Java8

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

注意避免安装其它版本的jdk否则可能会有不兼容spark的情况。注意设置JAVA_HOME,并添加它到默认路径PATH中

WINDOWS下安装jdk8详细教程可以参考:

https://www.cnblogs.com/heqiyoujing/p/9502726.html

安装成功后,在命令行中输入 java -version,可以看到类似如下的结果。

2,下载解压spark

spark官网下载: http://spark.apache.org/downloads.html

百度云盘链接: https://pan.baidu.com/s/1mUMavclShgvigjaKwoSF_A 密码:fixh

下载后解压放入到一个常用软件的安装路径,如:

/Users/liangyun/ProgramFiles/spark-3.0.1-bin-hadoop3.2

对于Linux用户,和mac用户,建议像如下方式在~/.bashrc中设置环境变量,以便可以启动spark-submit和spark-shell。

windows用户可以忽略以下设置。


export PYTHONPATH=$/Users/liangyun/anaconda3/bin/python
export PATH="/Users/liangyun/anaconda3/bin:${PATH}"

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
export SPARK_HOME="/Users/liangyun/ProgramFiles/spark-3.0.1-bin-hadoop3.2"

export PYSPARK_PYTHON=$PYTHONPATH
export PYSPARK_DRIVER_PYTHON=$PYTHONPATH
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

3,安装findspark

安装成功后可以在jupyter中运行如下代码

import findspark

#指定spark_home为刚才的解压路径,指定python路径
spark_home = "/Users/liangyun/ProgramFiles/spark-3.0.1-bin-hadoop3.2"
python_path = "/Users/liangyun/anaconda3/bin/python"
findspark.init(spark_home,python_path)

import pyspark 
from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName("test").setMaster("local[4]")
sc = SparkContext(conf=conf)

print("spark version:",pyspark.__version__)
rdd = sc.parallelize(["hello","spark"])
print(rdd.reduce(lambda x,y:x+' '+y))

spark version: 3.0.1
hello spark

4,救命方案


如果以上过程由于java环境配置等因素没能成功安装pyspark。


可以在和鲸社区的云端notebook环境中直接学习pyspark。


和鲸社区的云端notebook环境中已经安装好了pyspark。


https://www.kesci.com/home/column/5fe6aa955e24ed00302304e0


二,运行pyspark的各种方式

pyspark主要通过以下一些方式运行。

1,通过pyspark进入pyspark单机交互式环境。

这种方式一般用来测试代码。

也可以指定jupyter或者ipython为交互环境。

2,通过spark-submit提交Spark任务到集群运行。

这种方式可以提交Python脚本或者Jar包到集群上让成百上千个机器运行任务。

这也是工业界生产中通常使用spark的方式。

3,通过zepplin notebook交互式执行。

zepplin是jupyter notebook的apache对应产品。

4, Python安装findspark和pyspark库。

可以在jupyter和其它Python环境中像调用普通库一样地调用pyspark库。

这也是本书配置pyspark练习环境的方式。

三,通过spark-submit提交任务到集群运行常见问题

以下为在集群上运行pyspark时相关的一些问题,

1,pyspark是否能够调用Scala或者Java开发的jar包?

答:只有Driver中能够调用jar包,通过Py4J进行调用,在excutors中无法调用。

2,pyspark如何在excutors中安装诸如pandas,numpy等包?

答:可以通过conda建立Python环境,然后将其压缩成zip文件上传到hdfs中,并在提交任务时指定环境。当然,最简单直接的方案是把你想要的anaconda环境打包成zip上传到集群hdfs环境中。注意,你打包的机器应当和集群的机器具有相同的linux操作系统。

3,pyspark如何添加自己编写的其它Python脚本到excutors中的PYTHONPATH中?

答:可以用py-files参数设置,可以添加.py,.egg 或者压缩成.zip的Python脚本,在excutors中可以import它们。

4,pyspark如何添加一些配置文件到各个excutors中的工作路径中?

答:可以用files参数设置,不同文件名之间以逗号分隔,在excutors中用SparkFiles.get(fileName)获取。

#提交python写的任务
spark-submit --master yarn \
--deploy-mode cluster \
--executor-memory 12G \
--driver-memory 12G \
--num-executors 100 \
--executor-cores 2 \
--conf spark.yarn.maxAppAttempts=2 \
--conf spark.default.parallelism=1600 \
--conf spark.sql.shuffle.partitions=1600 \
--conf spark.memory.offHeap.enabled=true \
--conf spark.memory.offHeap.size=2g\
--conf spark.task.maxFailures=10 \
--conf spark.stage.maxConsecutiveAttempts=10 \
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./anaconda3.zip/anaconda3/bin/python #指定excutors的Python环境
--conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON = ./anaconda3.zip/anaconda3/bin/python #cluster模式时候设置
--archives viewfs:///user/hadoop-xxx/yyy/anaconda3.zip #上传到hdfs的Python环境
--files data.csv,profile.txt
--py-files pkg.py,tqdm.py
pyspark_demo.py

关于怎么快速搭建Spark开发环境问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

环境 方式 运行 集群 任务 路径 问题 配置 开发 成功 单机 文件 机器 用户 脚本 云端 交互式 代码 参数 方案 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全哪个职业学院好 辽宁在线项目管控软件开发平台 数据库保存假期时间的表 用代码在数据库添加表 惠普服务器 波浪线 恶魔之魂重制版数据库 我的世界服务器登录 咸阳市网络安全应急中心招聘 邮件服务器架设 吴忠市政务软件开发靠谱吗 定制产品用别人服务器安全吗 图数据库写入数据 网络安全服务的目标 服务大局服务社会服务基层服务器 网络侦查技术与网络技术侦查 网络技术专业碰到的问题 我国近年来网络安全 网络安全宣传节目观后感 武汉以太网络技术有限公司 你的网络无法连接到服务器 丝绸之路丝路网络技术有限公司 软件开发与编程哪个好就业 四达时代软件开发面试 星辰mega服务器的密码是多少 长沙软件开发的费用 华为网络技术大赛考场 学数据库学啥语言 网络安全包括网络暴力吗 数据库文件有哪三类缩写 编程和软件开发专业就业方向
0