原文链接:https://mp.weixin.qq.com/s/mUUKO-oCsy_xxi7dQduhwg
准备工作
-
查看操作系统的版本信息:计算机>>右键“属性”>>查看版本信息,如Windows10专业版64位。
1
安装Anaconda
1.1 下载
-
注意选择与操作系统匹配的版本,截止写本教程时,官方版本为Anaconda5.0.1,内部封装的为Python3.6,也可根据需要下载封装其他版本Python的Anaconda3
-
下载地址为:https://www.anaconda.com/download/
1.2 安装
-
根据安装向导逐步进行,注意安装路径中的文件夹名称不要存在空格
1.3 配置环境变量
-
配置系统变量PATH,添加…Anaconda3Scripts及…Anaconda3(根据安装路径确定)
【注意】此图PATH变量中也显示了后续安装过程中添加的信息
1.4 测试
-
测试Python:在cmd中输入Python命令,查看Python版本信息
-
测试Conda:在cmd中输入conda或pip命令,查看具体信息
2
安装Java
2.1 下载
-
下载JDK8,选择与操作系统匹配的版本,注意勾选同意其使用协议后下载
-
下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.2 配置环境变量
-
新建系统变量JAVA_HOME,值为Java安装路径
-
新建系统变量CLASSPATH,值为“.%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar”(注意最前面的圆点)
-
配置系统变量PATH,添加%JAVA_HOME%in及%JAVA_HOME%jrein
2.3 测试
-
在cmd中输入java –version命令,查看Java版本信息
3
安装Spark
3.1 下载
-
下载Spark2.2.0,注意与操作系统版本一致
-
下载地址为:http://spark.apache.org/downloads.html
3.2 安装
-
只需解压程序包,并拷贝至存放路径,注意安装路径中的文件夹名称不要存在空格
3.3 配置环境变量
-
新建系统变量SPARK_HOME,值为Spark安装路径
-
配置系统变量PATH,添加%SPARK_HOME%in及%SPARK_HOME%sbin
3.4 配置日志显示级别
-
选择…sparkconf目录下log4j.properties.template,复制为log4j.properties
-
将log4j.properties中,"INFO, console"改为"WARN, console"
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%in
5
测试Spark
5.1 测试spark
-
在cmd中输入spark-shell,查看Spark版本信息
5.2 测试pyspark
-
在cmd中输入pyspark,查看Pyspark版本信息
6
运行示例代码
6.1 将...sparkpythonpyspark文件夹拷贝至...Anaconda3Libsite-packages文件夹下(注意安装路径)
6.2 安装python的py4j库,Py4j可以使运行于python解释器的python程序动态的访问java虚拟机中的java对象。
6.3 运行示例代码
个人执行过程排错
1.win10 命令提示符cmd不是内部或外部命令的解决方法
在系统环境变量path添加:
- %SystemRoot%system32
- %SystemRoot%
- %SystemRoot%System32Wbem
- %SystemRoot%System32WindowsPowerShellv1.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())