使用anaconda的jupyter notebook来运行pyspark
1. 安装anaconda(linux)
2. 配置
3. 本地模式运行pyspark
4. yarn运行pyspark
5. 遇到的问题
centos7默认python环境是2.7,我想要3.5的,
使用anaconda配置python环境,anaconda还自带很多科学计算包,方便
1. 安装anaconda
官网下载linux版本anaconda,或者去清华镜像下载,Anaconda3-5.3.1-Linux-x86_64.sh
安装:
bash Anaconda3-5.3.1-Linux-x86_64.sh -b
其中bash是安装命令。-b是指batch,即批次安装,会自动省略阅读license条款。
默认安装到根目录 /root/anaconda3
2. 配置
(1)anaconda环境变量
/etc/profile
#set anaconda env
export ANACONDA_PATH=/root/anaconda3/bin:$PATH
export PATH=/root/anaconda3/bin:$PATH
(2)pyspark设置
还在/etc/profile
#set pyspark env
export PYSPARK_DRIVER_PYTHON=$ANACONDA_PATH/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_PATH/bin/python
验证,查看python版本:
[root@hadoop01 ~]# source /etc/profile
[root@hadoop01 ~]# python -V
Python 3.7.0
因为spark是集群运行的,所以每个机器都要安装anaconda并配置:
以hadoop02为例:
[root@hadoop01 software]# scp Anaconda3-5.3.1-Linux-x86_64.sh hadoop02:/export/software
[root@hadoop02 ~]# bash Anaconda3-5.3.1-Linux-x86_64.sh -b
[root@hadoop01 etc]# scp profile hadoop02:/etc/
3. 本地模式运行pyspark
新建文件夹用来放程序代码:/ipynotebook
使用命令:
PYSPARK_DRIVER_PYTHON="jupyter" PYSPARK_DRIVER_PYTHON_OPTS="notebook" pyspark
sc.master 可以看到此时是本地模式
关闭notebook,在控制台用ctrl+c
4. yarn运行spark
先启动hadoop:start-all.sh
进入工作目录,启动时指定master为yarn,可分为client和cluster模式:
PYSPARK_DRIVER_PYTHON="jupyter" PYSPARK_DRIVER_PYTHON_OPTS="notebook" MASTER=yarn-client pyspark
yarn web页面:
5. 遇到的问题
Running as root is not recommended. Use --allow-root to bypass.
root用户的问题,配置一下即可
解决方法:
首先输入:jupyter notebook --generate-config
修改产生的这个文件:gedit /root/.jupyter/jupyter_notebook_config.py
找到这一行
#c.NotebookApp.allow_root = False
去掉#,并修改成True。
保存,重新运行程序即可。
同样修改其他几台机器。