最近在学习
Spark框架版本迭代很快,这本书上的Spark版本是1.1,对应的hadoop版本是2.4。遗憾的是Apache Spark已经不提供1.1版本的下载了,为了避免版本更迭导致的学习受阻,要尽量采用低版本的Spark和hadoop
Spark下载地址:Apach Spark。
Spark提供java、scala及python的api接口
如果使用的是python且python的版本是3.6,那么就只能下载Spark 2.2.1对应hadoop2.6(python2.7到python3.5的可以下载Spark2.1 对应hadoop2.\4)
将压缩包解压,放在任意的文件夹,建议放在C:\Spark
下载hadoop,这里我们Spark对应的hadoop版本是2.6,所以要在这里选择2.6.0版本的hadoop下载
将下载的文件解压到C:\Spark目录下(C:\Spark\hadoop-2.6.0)
设置环境变量:
- 添加SPARK_HOME,地址为C:\Spark
- 添加HADOOP_HOME,地址为%SPARK_HOME%\hadoop-2.6.0
打开命令行,输入pyspark显示以下图片即表示安装成功(无视WARNING)
遇到的报错
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
在hadoop文件夹中没有winutils.exe
解决办法:
- 在这里,选择对应hadoop版本的winutils.exe,下载后解压到%HADOOP_HOME%\bin
The root scratch dir: /tmp/hive on HDFS should be writable.
- 在管理员权限下打开windows powershell,输入
%HADOOP_HOME%\bin\winutils.exe chmod 777 C:\tmp\hive
实际上是提升了权限
配置Spark到jupyter notebook
打开%SPARK_HOME%\bin\spark
在PYSPARK_DRIVER_PYTHON
、PYSPARK_DRIVER_PYTHON_OPTS
这两项后面修改一下
在命令行输入pyspark,启动Spark的时候顺带会启动jupyter notebook
如果没有启动
pip安装findsparkpip3 install findspark
以后每次在使用jupyter notebook的时候加上
import findspark
findspark.init()
即可正常使用