在CDH中远程使用jupyter(与pyspark连接)

在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 /
chown hdfs:hdfs /

# 启动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了。

你可能感兴趣的:(Linux及运维,大数据,Python)