准备工作


  • 查看操作系统的版本信息:计算机>>右键“属性”>>查看版本信息,如Windows10专业版64位。


Windows10搭建Spark+Python开发环境_java


Windows10搭建Spark+Python开发环境_hadoop_02


1

安装Anaconda


1.1 下载


  • 注意选择与操作系统匹配的版本,截止写本教程时,官方版本为Anaconda5.0.1,内部封装的为Python3.6,也可根据需要下载封装其他版本Python的Anaconda3
  • 下载地址为:https://www.anaconda.com/download/


Windows10搭建Spark+Python开发环境_spark_03


1.2 安装


  • 根据安装向导逐步进行,注意安装路径中的文件夹名称不要存在空格


1.3 配置环境变量


  • 配置系统变量PATH,添加…\Anaconda3\Scripts及…\Anaconda3(根据安装路径确定)


Windows10搭建Spark+Python开发环境_spark_04

【注意】此图PATH变量中也显示了后续安装过程中添加的信息


1.4 测试


  • 测试Python:在cmd中输入Python命令,查看Python版本信息
  • 测试Conda:在cmd中输入conda或pip命令,查看具体信息


Windows10搭建Spark+Python开发环境_python_05


Windows10搭建Spark+Python开发环境_hadoop_02


2

安装Java


2.1 下载


  • 下载JDK8,选择与操作系统匹配的版本,注意勾选同意其使用协议后下载
  • 下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


Windows10搭建Spark+Python开发环境_hadoop_07


2.2 配置环境变量


  • 新建系统变量JAVA_HOME,值为Java安装路径
  • 新建系统变量CLASSPATH,值为“.%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”(注意最前面的圆点)
  • 配置系统变量PATH,添加%JAVA_HOME%\bin及%JAVA_HOME%\jre\bin


Windows10搭建Spark+Python开发环境_java_08


2.3 测试


  • 在cmd中输入java –version命令,查看Java版本信息


Windows10搭建Spark+Python开发环境_python_09


Windows10搭建Spark+Python开发环境_hadoop_02


3

安装Spark


3.1 下载


  • 下载Spark2.2.0,注意与操作系统版本一致
  • 下载地址为:http://spark.apache.org/downloads.html

Windows10搭建Spark+Python开发环境_spark_11


3.2 安装


  • 只需解压程序包,并拷贝至存放路径,注意安装路径中的文件夹名称不要存在空格


3.3 配置环境变量


  • 新建系统变量SPARK_HOME,值为Spark安装路径
  • 配置系统变量PATH,添加%SPARK_HOME%\bin及%SPARK_HOME%\sbin

Windows10搭建Spark+Python开发环境_hadoop_12


3.4 配置日志显示级别


  • 选择…\spark\conf\目录下log4j.properties.template,复制为log4j.properties
  • 将log4j.properties中,"INFO, console"改为"WARN, console"

Windows10搭建Spark+Python开发环境_hadoop_13


Windows10搭建Spark+Python开发环境_hadoop_02


4

配置Hadoop支持模块


4.1 下载


  • 下载Hadoop支持模块
  • 下载地址为:https://github.com/LemenChao/Introduction-to-Data-Science/blob/master/Hadoop/hadoop.dll-and-winutils.exe-for-hadoop2.7.3-on-windows_X64-master.zip


4.2 安装


  • 只需解压程序包,并拷贝至存放路径,注意安装路径中的文件夹名称不要存在空格


4.3 配置环境变量


  • 新建系统变量HADOOP_HOME,值为Hadoop安装路径
  • 配置系统变量PATH,添加%HADOOP_HOME%\bin

Windows10搭建Spark+Python开发环境_系统变量_15


Windows10搭建Spark+Python开发环境_hadoop_02


5

测试Spark


5.1 测试spark


  • 在cmd中输入spark-shell,查看Spark版本信息

Windows10搭建Spark+Python开发环境_java_17


5.2 测试pyspark


  • 在cmd中输入pyspark,查看Pyspark版本信息

Windows10搭建Spark+Python开发环境_hadoop_18


Windows10搭建Spark+Python开发环境_hadoop_02


6

运行示例代码


6.1 将...\spark\python\pyspark文件夹拷贝至...\Anaconda3\Lib\site-packages文件夹下(注意安装路径)


6.2 安装python的py4j库,Py4j可以使运行于python解释器的python程序动态的访问java虚拟机中的java对象。


6.3 运行示例代码


Windows10搭建Spark+Python开发环境_系统变量_20




个人执行过程排错

1.win10 命令提示符cmd不是内部或外部命令的解决方法

在系统环境变量path添加:


  • %SystemRoot%\system32
  • %SystemRoot%
  • %SystemRoot%\System32\Wbem
  • %SystemRoot%\System32\WindowsPowerShell\v1.0

2.Exception: Java gateway process exited before sending its port number

确保你前面的配置都没有错。java、spark、Hadoop都配置成功,我自己的问题是因为运行程序的python环境没有被添加到系统变量里去。

3.py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM

在最开头添加这两行代码:


import findspark findspark.init()


完整测试程序如下:


import findspark findspark.init() from pyspark import SparkContext from pyspark import SparkConf  conf = SparkConf().setAppName("miniProject").setMaster("local[*]") sc=SparkContext.getOrCreate(conf) rdd=sc.parallelize([1,2,3,4,5]) rdd1=rdd.map(lambda r:r+10) print(rdd1.collect())