大数据-玩转数据-python开发spark(pycharm)环境搭建

说明:
需要在windows系统下开发spark程序,然后迁移程序到linux生产环境运行。

1.安装好JDK

下载并安装

jdk-17_windows-x64_bin.exe

配置环境变量:

JAVA_HOME,值为Java安装路径

C:\Program Files\Java\jdk-17.0.1;

系统变量CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注意最前面的圆点)

系统变量PATH

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

检验成功:

在CMD中输入:java -version

pycharm 链接 docker mac pycharm连接hadoop_spark


2.安装Hadoop,并配置环境变量

下载hadoop
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

解压hadoop-2.7.7.tar.gz特定路径
D:\myprograme\hadoop
配置环境变量
添加系统变量HADOOP_HOME
D:\myprograme\hadoop
在系统变量PATH中添加
D:\myprograme\hadoop\bin
安装组件winutils
将winutils中对应的hadoop版本中的bin替换自己hadoop安装目录下的bin

下载winutils-master.zip
(直接解压好的Hadoop不支持Windows系统,我们需要修改一些配置方便在Windows上运行)
下载地址:https://pan.baidu.com/s/1SwIy_WORbRUlrosuNAVBqg 提取码:7hbj

解压 windows-master.zip
复制解压开的bin目录替换原有的hadoop下的bin目录

3.Spark环境变量配置

spark是基于hadoop之上的,运行过程中会调用相关hadoop库,如果没配置相关hadoop运行环境,会提示相关出错信息,虽然也不影响运行。

下载对应hadoop版本的spark
地址:http://spark.apache.org/downloads.html

解压文件到:
D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2

添加PATH值
D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2\bin;

新建系统变量SPARK_HOME
D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2;

5.本地安装配置好 Python、pycharm

点击pycharm,点击File-Settings-project interpreter,配置python编辑器

pycharm 链接 docker mac pycharm连接hadoop_spark_02


6.在pycharm中配置spark

随便打开一个project,在windows-powershell的terminal 输入

pip install pyspark

pycharm 链接 docker mac pycharm连接hadoop_windows_03


有警告

在pycharm上的project interpreter上下载py4j,因pyspark依赖这个包。

在 File-Settings-project interpreter 搜索安装包py4j

pycharm 链接 docker mac pycharm连接hadoop_spark_04


7. 配置环境变量到pycharm

随便打开一个project

run -> edit configurition。设置Environment variables —点击“…”,出现框框,点击+

输入两个name:

一个是SPARK_HOME,

一个是PYTHONPATH,

设置对应values

SPARK_HOME的value:

D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2

PYTHONPATH的value:

D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2/python

设置好了保存。(注意不管是路径的哪里,都不能有空格!!尤其是结尾!)

pycharm 链接 docker mac pycharm连接hadoop_hadoop_05


6 关键的一步,

在File-Settings中的project structure中点击右边的“add content root”,添加py4j-some-version.zip和pyspark.zip的路径(这两个文件都在Spark中的python的lib文件夹下)

保存D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2\python\lib\py4j-0.10.9.2-src.zip

D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2\python\lib\pyspark.zip

pycharm 链接 docker mac pycharm连接hadoop_windows_06


7.测试是否配置成功

程序代码如下,创建一个python程序放进去就可以:

import os
import sys
# Path for spark source folder
os.environ['SPARK_HOME'] = "D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2"
# Append pyspark to Python Path
sys.path.append("D:\myprograme\hadoop\spark-3.2.0-bin-hadoop3.2\python")
try:
    from pyspark import SparkContext
    from pyspark import SparkConf
    print("Successfully imported Spark Modules")
except ImportError as e:
    print("Can not import Spark Modules", e)
sys.exit(1)

程序正常输出说明环境已经可以正常执行

pycharm 链接 docker mac pycharm连接hadoop_windows_07

总结

部署相应包的时候注意版本,pycharm 具有自动检测相应版本功能,有些包根据pycharm提示在线部署比较省力。