参考 https://www.e-learn.cn/content/python/786199
注意
所有的变量都放在环境变量而非用户变量。比如JAVA_HOME。
不然虽然pyspark没问题,但是java会出问题懒得改下面的图了
1.安装anaconda
官网下载安装python3.7版
2.安装JAVA
官网下载安装
https://www.oracle.com/technetwork/java/javase/overview/index.html (建议 安装 jdk-8u211,8开头的1.8版本。安装12.0跑代码的时候出错)
设置环境变量
安装好以后,配置Java的环境变量,右键我的电脑,依次点击属性-高级系统设置-环境变量
新建用户变量: JAVA_HOME;C:\Program Files\Java\jdk-XXXXXX
//这里有问题,见最后的错误及解决
在系统变量中找到Path,点击按钮新建,然后添加文字%JAVA_HOME%\bin,最后按回车Enter,一直点击确定,就保存了更改,这样就将bin文件夹中的Java程序放到了系统变量中。
3.下载安装并配置Spark
官网 http://spark.apache.org/downloads.html
官方网站Download Apache Spark™下载相应版本的spark,因为spark是基于hadoop的,需要下载对应版本的hadoop才行,这个页面有对hadoop的版本要求
配置环境变量
分别在用户变量添加SPARK_HOME ,在环境变量的PATH 添加对应的bin,sbin
4.安装并配置Hadoop
http://hadoop.apache.org/releases.html
上面安装spark的时候有对hadoop的版本要求,这里要求的是2.7及以后的版本,进入官方网站Apache Hadoop Releases下载3.1.2 binary版本,
其中source版本是该版本hadoop的源代码,下载以后解压(需要管理员权限解压)
配置环境变量:
右键我的电脑,依次点击属性-高级系统设置-环境变量
新增用户变量 HADOOP_HOME
然后找到系统变量Path 点击按钮新建,然后添加文本%HADOOP%\bin,按回车enter,继续新建一个,添加文本%HADOOP%\sbin,
按键回车,一直点击确定,就保存了更改,这样就将bin、sbin文件夹中的程序放到了系统变量中
从网站中下载一个压缩包,然后解压出来,复制其中的winutils.exe和winutils.pdb到hadoop的安装文件夹中,
复制目录为:D:\hadoop-3.1.2\hadoop-3.1.2\bin
https://github.com/srccodes/hadoop-common-2.2.0-bin
5.安装pyspark
cmd,进入spark的python目录
pip install pyspark
6.检查
参考https://blog.csdn.net/qq_38799155/article/details/78254580
import os import sys spark_home = os.environ.get('SPARK_HOME', None) if not spark_home: raise ValueError('SPARK_HOME environment variable is not set') sys.path.insert(0, os.path.join(spark_home, 'python')) sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.10.4-src.zip')) comm=os.path.join(spark_home, 'python/lib/py4j-0.10.4-src.zip') print ('start spark....',comm) exec(open(os.path.join(spark_home, 'python/pyspark/shell.py')).read())
遇到的问题
原因,添加的JAVA环境路径包含空格
修改为