mac上面配置anaconda3+pyspark+jupyter_notebook

96
九日照林
2018.07.27 21:45* 字数 562

今天花了一些时间来整理mac osx系统下用anaconda环境配置pyspark+jupyter notebook启动的整个过程。

背景介绍:

我原本用的是anaconda 2.7版本,创建了python3的环境变量,安装了python3,虽然在jupyter notebook能够正常导入pyspark,但是对rdd算子聚合后计数总会报错。


jupyter notebook文件
python in worker has different version 2.7 than that in driver 3.6, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.

应该是需要修改环境变量。

修改环境变量一般在终端修改.bash_profile文件

#在终端键入
$vi ./.bash_profile
#然后在打开的文件当中加上以下这些内容
export SPARK_HOME=~spark-2.3.1-bin-hadoop2.7#这里是指明了SPARK要调用的路径,就是你解压缩的文件
export PATH="$PARK_HOME/bin:$PATH"#这里将上面的环境变量加入到应用程序的执行搜索路径
export PYSPARK_DRIVER_PYTHON="jupyter"#这里指定pyspark的启动形式是jupyter notebook
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
#对于python3还需要制定python的版本
export PYSPARK_PYTHON=python3
alias snotebook='$SPARK_PATH/bin/pyspark --master local[2]'#这里主要说的是用本地两个核来启动pyspark

退出以后在终端键入使之修改成效

$source ~/.bash_profile

关闭终端,重新启动。

仍然是会报错:

Cannot run program "//anaconda/envs/python3": error=13, Permission denied

似乎是没有权限启动python3,因为我本身默认的python是2.7版本。

弄了一下午也没明白如何修改权限使得python3能够和pyspark和谐共处,最终下了anaconda3,重新安装。保持上面.bash_profile文件不改。

接下来要安装spark 2.3版本,在这里注意,之前python3和原本的spark 2.1版本是不共存的,所以之前不能运行也是有大理的。下载完之后放到home/目录下,解压缩(这里的路径就是上面SPARK_HOME的路径,是对应起来的)。

接下来有了spark可以安装pyspark了。

终端键入以下语句,安装pyspark

$conda install pyspark

到了这里就可以启动了。

$jupyter notebook /Users/chenlinlin/Desktop/spark_practice_dataset/rating_counter.ipynb

启动之后,发现rating可以用countByValue方法了,不会报之前的错误。

最后的结果

在这里总结几点:

  1. python3和spark 2.1版本不兼容,所以要升级到spark 2.3版本。
  2. 下载的anaconda2配置了python3的环境,但是pyspark不知道为什么在kernel为python3的情况下,设置pyspark_python环境变量为python3也无法运行。所以最好就是直接安装anaconda3,只有python3的环境。
  3. 按照步骤来:安装anaconda3->下载spark 2.3->安装pyspark->修改.bash_profile文件的环境变量,是最快的解决路径。
  4. 要将一些大的安装包备份好,这样就可以省去很多下载时间。

参考资料

  1. Install Python on Mac (Anaconda)
  2. 在mac上搭建spark+ipython环境
  3. Install Spark on Mac (PySpark)
日记本
Web note ad 1