暂无说说

pyspark之默认使用jupyter

spark jiajun 1周前 (10-09) 7次浏览 0个评论 扫描二维码

前言

工欲善其事,必先利其器,在 Python 中进行 Spark 应用程序开发,需要一个好用的开发工具。IPython 提供了一个优秀的记事本式开发工具——Jupyter。Spark 可以与 IPython 集成,因此在调用 Python 的 Spark REPL 时,它将启动 Jupyter。然后,创建一个记事本并开始在记事本中编写代码,就像 Python 的 Spark REPL 中给出的命令一样,最主要的是有 tab 自动补全功能。本文介绍 spark 与 jupyter 集成。

添加环境变量

由于 Anaconda3 自带安装了 Jupyter 所以不需要另外安装,只需在/etc/profile 中添加下面环境变量即可

sudo vi /etc/profile

 添加

export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

添加完后刷新/etc/profile,使环境变量生效。

source /etc/profile

开启 Jupyter 远程访问

1、生成一个 notebook 配置文件

默认情况下,配置文件 ~/.jupyter/jupyter_notebook_config.py 并不存在,需要自行创建。使用下列命令生成配置文件:

jupyter notebook --generate-config

如果是 root 用户执行上面的命令,会发生一个问题:

Running as root it not recommended. Use --allow-root to bypass.

提示信息很明显,root 用户执行时需要加上 –allow-root 选项。

jupyter notebook --generate-config --allow-root

执行成功后,会出现下面的信息:

Writing default config to: /home/hadoop/.jupyter/jupyter_notebook_config.py

生成密码

自动生成

从 jupyter notebook 5.0 版本开始,提供了一个命令来设置密码:jupyter notebook password,生成的密码存储在 jupyter_notebook_config.json。

jupyter notebook password

Enter password: ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json

手动生成

除了使用提供的命令,也可以通过手动安装,笔者是使用的手动安装,因为 jupyter notebook password 出来一堆内容,没耐心看。打开 ipython 执行下面内容:

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:d45e40a12d12:65244cbc5c1de48affaf8716271665496575697d'

sha1:d45e40a12d12:65244cbc5c1de48affaf8716271665496575697d 这一串就是要在 jupyter_notebook_config.py 添加的密码。

c.NotebookApp.password = u'sha1:d45e40a12d12:65244cbc5c1de48affaf8716271665496575697d'

2、修改配置文件

在  /home/hadoop/.jupyter/jupyter_notebook_config.py 中找到下面的行,取消注释并修改。

vi /home/hadoop/.jupyter/jupyter_notebook_config.py

取消注释并修改

c.NotebookApp.allow_root = True
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口

以上设置完以后就可以通过pyspark命令启动 jupyter notebook。打开 IP:指定的端口, 输入密码就可以访问了。

需要注意的是不能在隐藏目录 (以 . 开头的目录)下启动 jupyter notebook, 否则无法正常访问文件。

ps:如果远程访问失败,注意排除是否 centos 系统防火墙的问题。


mathslib , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:pyspark 之默认使用 jupyter
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址