Linux下远程连接Jupyter+pyspark部署教程


Posted in Python onJune 21, 2019

博主最近试在服务器上进行spark编程,因此,在开始编程作业之前,要先搭建一个便利的编程环境,这样才能做到舒心地开发。本文主要有以下内容:

1、python多版本管理利器-pythonbrew
2、Jupyter notebooks 安装与使用以及远程连接方法
3、Jupyter连接pyspark,实现web端sprak开发

一、python多版本管理利器-pythonbrew

在利用python进行编程开发的时候,很多时候我们需要多个Python版本进行测试,博主之前一直在Python2.x和3.x之间徘徊挣扎,两者纠缠不清的关系真是令博主心累了一万年。直至遇到了pythonbrew,它在博主心中泛起的涟漪,久久不能逝去。说到pythonbrew,它是一个python的多版本管理器,可以在多个 Python之间迅速切换,也可以在指定的 Python 版本下测试python程序,更重要的是它还整合了 Virtualenv。所以,当你的电脑里装了多个python版本,并需要经常切换测试时,pythonbrew就非常适合你。

1.安装配置pythonbrew

sudo easy_install pythonbrew(easy_install安装)
pip install pythonbrew(pip安装)

2.添加配置环境到~/.bashrc(或~/.bash_profile)

[[ -s "$HOME/.pythonbrew/etc/bashrc" ]] && source"$HOME/.pythonbrew/etc/bashrc"

然后执行:source ~/.bashrc(或~/.bash_profile)

3.查看系统可以安装的python版本

[ray@hadoop01 ~]$ pythonbrew list -k
# Pythons
Python-1.5.2
Python-1.6.1
Python-2.0.1
Python-2.1.3
Python-2.2.3
Python-2.3.7
Python-2.4.6
Python-2.5.6
Python-2.6.9
Python-2.7.10
Python-3.0.1
Python-3.1.5
Python-3.2.5
Python-3.3.5
Python-3.4.3

4.安装python

(ps:需要使用curl安装python,所以需要先安装curl)

[ray@hadoop01 ~]$ pythonbrew install 3.2.3(版本号)

5.清理安装后的版本的源码和安装包

[ray@hadoop01 ~]$ pythonbrew cleanup

6.选择一个python版本使用,ps:只在当前终端有效

[ray@hadoop01 ~]$ pythonbrew use 2.7.10(版本号)

7.查看当前pythonbrew下的python版本有哪些(后面有*号表示正在使用)

[ray@hadoop01 ~]$pythonbrew list
Python-2.6.7 (*)
Python-3.2.3

8.选择python3.4.3版本作为系统默认版本使用,会把该版本的路径添加到PATH中

[ray@hadoop01 ~]$ pythonbrew switch 3.4.3

9.取消pythonbrew选择的版本

[ray@hadoop01 ~]$ pythonbrew off

二、Jupyter notebooks 安装与使用以及远程连接方法

作为一只数据分析狮,利用python进行数据分析编程要的就是优雅和细致。如果还能随时随地利用任何终端进行数据分析,那不仅是高逼格,更是乐翻天了。而Jupyter notebook便是能帮助我们在web端做开发编程的利器。本节将介绍如果安装使用jupyter,以及如何远程连接到服务器端的Jupyter notebook。

1.安装Jupyter

[ray@hadoop01 ~]$ pip install jupyter

2.Jupyter Notebook远程服务器配置

1)首先要生成密码,打开python终端。

In [1]: from IPython.lib import passwd

In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:0e422dfccef2:84cfbcb
b3ef95872fb8e23be3999c123f862d856'

2)接下来生成秘钥:

[ray@hadoop01 ~]$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

注意:这里会要求你需要一些个人信息,如:国家、省份、名字等。执行完命令后,会生成一个mycert.pem文件。记下这个文件的路径。

3)创建一个服务器配置

[ray@hadoop01 ~]$ ipython profile create nbserver

编辑文件jupyter_notebook_config.py,在~/.jupyter/文件夹里

c.NotebookApp.password = u'sha1:。。。。。。。。。。。' c.NotebookApp.certfile = u'/root/.jupyter/mycert.pem' c.NotebookApp.ip = '*' 
c.NotebookApp.port = 9999

4)最后启动服务器:

[ray@hadoop01 ~]$ipython notebook --profile=nbserver

三、Jupyter连接pyspark,实现web端sprak开发

在进行这步操作之前,必须先安装好Jupyter、spark。

1.设置环境变量

将一下代码添加到~/.bash_profile(或者~/.bashrc)

export SPARK_HOME=~/spark-1.5.0-bin-hadoop2.6
export PATH=$SPARK_HOME/bin:$PATH

export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH

注意:

1).SPARK_HOME的地址是你sprak的安装目录,另外在最后一行代码中,py4j-0.8.2.1-src.zip可能会因版本不同而不同,请进入对应地址确认好该文件的名字。

2).如果要使用python3进行作业,则需要在.bash_profile中添加 export PYSPARK_PYTHON=python3

2.启动pyspark-jupyter

IPYTHON_OPTS="notebook"$SPARK_HOME/bin/pyspark

至此,所以配置全部完成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
学习python (1)
Oct 31 Python
Python实现的简单算术游戏实例
May 26 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
Python小进度条显示代码
Mar 05 Python
详解python中index()、find()方法
Aug 29 Python
python pygame实现挡板弹球游戏
Nov 25 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
教你怎么用python爬取爱奇艺热门电影
May 20 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 #Python
Pandas库之DataFrame使用的学习笔记
Jun 21 #Python
pyqt5之将textBrowser的内容写入txt文档的方法
Jun 21 #Python
pandas 数据索引与选取的实现方法
Jun 21 #Python
python实现二级登陆菜单及安装过程
Jun 21 #Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 #Python
jupyter notebook 中输出pyecharts图实例
Apr 23 #Python
You might like
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
php二维码生成
2015/10/19 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
世界上最好的足球商店:Unisport
2019/03/02 全球购物
手术室护士自我鉴定
2013/10/14 职场文书
城管大队整治方案
2014/05/06 职场文书
财务整改报告范文
2014/11/05 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技
python标准库ElementTree处理xml
2022/05/20 Python
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers