查看了很多博客和历史记录,没有一个能完整的解决自己碰到的问题,这里做个记录,方便有需要的人搭建自己的开发环境。
- 软件版本
hadoop 2.7.3
spark 2.2.1
scala 2.1.8
java 1.8
pycharm 2019.1
windows 7旗舰版
2.安装java1.8
配置环境变量
添加变量 JAVA_HOME 值为jdk目录
在path 追加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
保存后
cmd 运行 java -version
3.安装scala
windows 下直接下载msi 直接运行 会自动写入到path
安装完毕,验证Scala
4.安装spark
解压文件即可。
5.安装hadoop
下载hadoop解压之后 ,设置环境变量
添加 HADOOP_HOME 值为hadoop解压目录
添加path ;%HADOOP_HOME%\bin
修改hadoop文件夹属性,将文件夹和里面的一切文件的只读去掉。
把2.7.3版本的winutils拷贝到对应的\hadoop\bin目录下。
到spark的bin目录下,在直接输入spark-shell命令后,Spark开始启动,并且输出了一些日志信息,大多数都可以忽略,需要注意的是两句话:
Spark context available as sc.
SQL context available as sqlContext.
6.python安装配置
直接安装anaconda3即可,在系统环境变量path中添加pathon的路径,执行python可以进入界面。
7.pycharm配置
settings-》project Interpreter下面,配置python解析器。
选择 File--->setting--->你的project--->project structure
右上角Add content root添加:py4j-some-version.zip和pyspark.zip的路径(这两个文件都在Spark中的python文件夹下)
SPARK_HOME和PYTHONPATH。
PYSPARK_PYTHON; 指向 你本机 的 python 路径
PYTHONPATH:指向 spark 安装目录的 Python 文件夹
打开RUN->Edit Configurations,选择当前脚本,如下图
(1)添加上变量PYSPARK_PYTHON,指定python.exe (2)确认python解释器选择正确
否则报错:
java.io.IOException: Cannot run program "python": CreateProcess error=2,
再增加一个变量:PYTHONPATH,指向SPARK目录下的python文件夹。(其他资料里面加了,貌似不影响啥)
代码里面添加上路径变量:
import os,sys
from pyspark import SparkContext,SparkConf
os.environ['SPARK_HOME']='D:\protool\spark_env\spark'
os.environ['JAVA_HOME']='C:\Program Files\Java\jdk1.8.0_91'
os.environ['HADOOP_HOME']='D:\protool\spark_env\hadoop'
不添加spark_HOME,报错,不能执行:
Could not find valid SPARK_HOME while searching
不添加JAVA_HOME报错,不能执行:
Java not found and JAVA_HOME environment variable is not set.
不添加HADOOP_HOME,报错但是能出结果:
19/05/09 10:25:20 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
系统path变量加上这个路径,否则不识别anaconda下面已经安装好的包,容易报错。(感谢网友分享)
跑段代码看看,成功!