在CDH中远程使用jupyter(与pyspark连接)
本文主要介绍了怎么在CDH中启用jupyter。
首先,需要安装Anaconda for CDH在CDH上安装Anaconda有两种方式,一种是
Anaconda Parcels 安装,也即本文所采用的方式,另一种是 Anaconda for cluster management 收费版,功能也更强大,也有免费版)
由于国内的网络问题,在线更新下载很慢这里我们采用离线下载的方式。
1. 安装Anaconda Parcels
- 下载Anaconda Parcels,下载符合自己的版本及其sha文件
- 将下载好的文件上传至你的CDH parcels库,一般位置在 /opt/cloudera/parcel-repo
- 进入CDH管理界面,进行相关配置
!配置界面
刷新之后就能够看到Anaconda已下载成功。然后分发、激活。
2.python升级
由于我的CDH 集群使用centos6.5系统,自带的2.6.6的python,不支持jupyter,所以需要2.7版本的python
这里,我们直接使用Anaconda包里所自带的python版本,也即2.7.11,位置在/opt/cloudera/parcels/Anaconda-4.0.0/bin/python。
然后通过以下指令进行连接
ln -fs /opt/cloudera/parcels/Anaconda-4.0.0/bin/python /usr/bin/python
如果仍需使用系统的2.6.6版本的python,比如yum,那么修改/usr/bin/yum文件,将第一行内容
#!/usr/bin/python
修改为
#!/usr/bin/python2.6
即可。其他设置同理。
3.进行相关设置
3.1.主节点(Spark diver)配置
Xshell以root用户登录到spark diver的主机上,然后进行以下配置:为使其永久生效,我们需要在/etc/profile.d/增加一个自己的文件比如startpyspark.sh。添加以下内容:
# 为pyspark设置环境变量
export PYSPARK_DRIVER_PYTHON=/opt/cloudera/parcels/Anaconda/bin/jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook --NotebookApp.open_browser=False --NotebookApp.ip='*' --NotebookApp.port=8880"
export PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python
export PATH=/opt/cloudera/parcels/Anaconda/bin:$PATH
然后进行其他设置:
# 创建一个notebook的目录,确保可以hadoop用户有访问hdfs的权限。
mkdir /<your_notebook_dir>
chown hdfs:hdfs /<your_notebook_dir>
# 启动pyspark(如果不行可以切换到hdfs用户su hdfs进行启动)
pyspark
3.2.其他所有节点配置
该设置不在命令行中进行,因为我们要做永久性使用,我们自定义一个.sh文件,输入以下内容,并保存在/etc/profile.d下。(和主节点一样,我们仍在startpyspark.sh文件里添加内容)
(etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。)
export PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python
4.在浏览器中启动jupyter notebook(确保8880端口已打开)
地址栏输入:http://spark_driver_ip:8880/notebooks
就可以启动jupyter了。