安装条件

Xshell集群上已经安装spark、pyspark和python

安装并配置jupyter notebook

在Xshell集群终端中输入以下代码安装jupyter notebook

pip install jupyter
pip install notebook

在python中生成Notebook配置文件的秘钥

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 

sha1:****

把生成的秘钥sha1复制下来
创建一个与pyspark一起使用的notebook配置文件

ipython profile create pyspark

编辑文件

vi ~/.ipython/profile_pyspark/ipython_notebook_config.py

对如下参数进行修改

c.NotebookApp.ip=’*’ # 修改ip为任意ip
c.NotebookApp.password = ‘sha1:****刚才复制的那个密文’
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #默认端口为8888,可随意指定

设置spark_home环境变量

vi ~/.bashrc

添加如下内容:

export SPARK_HOME=’/opt/cloudera/parcels/CDH/lib/spark’ #修改为自己的spark目录文件
export PYSPARK_SUBMIT_ARGS=’–master yarn --deploy-mode client --num-executors 24 --executor-memory 10g --executor-cores 5’ # 可选,设置集群参数
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS=“notebook” 设置启动pyspark即可打开notebook

设置Xshell会话属性

右键打开Xshell会话-属性-隧道
在这里插入图片描述
点击添加,侦听端口和目标端口均填写之前修改的端口,我使用的是默认的8888
在这里插入图片描述

点击“确定”后,取消勾选下方的“X11转移”,点击“确定”保存设置。

测试使用

在Xshell终端中直接输入pyspark,即会跳出notebook编辑的链接地址( Or copy and paste one of these URLs:下方给出的链接地址即是),复制到本地的浏览器即可使用notebook。
新建python文件:

import os
import sys

spark_home = os.environ.get('SPARK_HOME', None)
if not spark_home:
	raise ValueError('SPARK_HOME environment variable is not set')
sys.path.insert(0, os.path.join(spark_home, 'python'))
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.1-src.zip'))#py4j-0.8.1-src.zip的版本自己切换目录ls查询后,做相应修改
exec(open(os.path.join(spark_home, 'python/pyspark/shell.py')).read())


from pyspark import SparkContext,SparkConf
from pyspark.sql import SparkSession

未报错即配置成功

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐