专栏首页MeteoAI远程Jupyter来实现Python气象聚类分析

远程Jupyter来实现Python气象聚类分析

日常工作、学习中可能都会有小型工作站或者是服务器(云服务器)供大家使用,而且使用Python的频率也挺高的,那么通常都会有可能个人电脑性能有限、存储空间或者内存有限的情形,那么我们Jupyter notebook就能够发挥很大的作用,特别是在公司、学校、或者单位局域网的环境下,远程的延迟相对较小,使用Jupyter来做Python数据处理和绘图实在是不错的选择。远程端负责计算,个人电脑仅仅是一个编辑器的作用。对于一些云服务器,可能相应的端口管理会更加严格一些,但通过设置远程使用Jupyter基本都没有问题。其实,本文所提及的远程使用jupyter主要集中于Python的配置、安装、使用。各取所需,仅仅做简单推介,不做深入的探讨。后文以Kaggle的气象聚类分析为例,实操一下如何远程Jupyter notebook使用Python的库来计算和绘图。

目标:安装Jupyter,配置服务端Jupyter,远程使用Jupyter,气象聚类分析。 工具:一台远程服务器、一台本地PC、Python3.x+基础包以及依赖的库、kaggle示例测试数据

1.安装Jupyter

回顾以往公众号的帖子,Python入门标配是安装Anaconda全家桶,如果是macOS或者Linux自身也会有预安装Python,替换掉!,在你安装好Anaconda之后,再进行后续操作,别问我为什么!

使用conda: conda install -c conda-forge jupyterlab 使用pip: pip install jupyterlab 上述步骤为远程端的配置安装,更加详细的内容请参考:链接[1]

2.配置Jupyter

配置文件所在路径

修改一个名为“upyter_notebook_config.py”的文件,这个文档位于home目录之下,不同的操作系统,它所处的位置稍有不同,大致如下:

Windows: C:\Users\USERNAME\.jupyter\jupyter_notebook_config.py

OS X: /Users/USERNAME/.jupyter/jupyter_notebook_config.py

Linux: /home/USERNAME/.jupyter/jupyter_notebook_config.py

创建配置文件

如果你在上述路径下没有找到这个配置文件,那么就需要在终端运行如下命令:

[jpnb@centos-7 ~]$ jupyter notebook --generate-config
Writing default config to: /home/jpnb/.jupyter/jupyter_notebook_config.py

‍设置访问密码

[jpnb@centos-7 ~]$ jupyter notebook password
Enter password: ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /home/jpnb/.jupyter/jupyter_notebook_config.json

下面我们还需要手动生成一个hash密码

可能你会问,为什么前面我们生成了一个Jupyter密码,这里还需生成一个hash密码呢?

原因很简单,如果你没有生成这么一个hash密码的话,那么每次通过浏览器远程访问Jupyter时,你都需要输入一次密码,这很繁琐!

但如果我们启用了这个hash密码,只需要首次远程访问Jupyter文档时,输入一次密码,在下次访问时,这个hash密码就好比一个钥匙(token),替我们打开密码之门,也就是免密码登录。

为了生成这个hash密码,我们需要在终端输入“ipython”(全部小写)命令,以进入IPython的交互shell。

然后在IPython中,依次输入如下代码:

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

将hash密码添加到配置文件中

下面,我们把前面生成的hash密码,添加到前面生成的配置文件:jupyter_notebook_config.py

如前所述,这个文件就在我们家目录~/.jupyter中。通过vim打开这个文件:

vim ~/.jupyter/jupyter_notebook_config.py

(Windows用户可以用诸如Notepad++等可视化效果更好的编辑器打开这个文件)。

在270行左右,找到c.NotebookApp.password 所在行,将如下代码:

#c.NotebookApp.password = ' '

前面的注释符号“#”去掉,然后将“=”右边的赋值,由空字符串’’,修改为前面生成的hash密码(注意,每个用户每次重新生成的hash值都是不同的):

c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

这里,特别需要注意的是,hash密码字符串前面的那个u不可省略

编辑配置文件

jupyter_notebook_config.py 中,除了添加前面提及的hash密码之外,还要修改如下部分代码(如果这些代码前有注释符号‘#’,则首先将其删除,表示启用这些设置):

将默认值False修改为True,表示允许外部访问,这个设置和下面IP设置,双重保障外部用户访问的可达性:

等号右边的‘localhost’(仅仅运行本地访问),修改为‘*’,表示允许所有IP皆可访问

c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip='*'

禁止自动打开浏览器

c.NotebookApp.open_browser = False

设置一个固定的notebook服务会监听的IP端口(这里设置为9999),这个值可以任意,只要保证不和其他已经启用的端口号冲突即可。

c.NotebookApp.port = 9999

做完上述配置之后,保存文件并退出。

但此时修改的配置并没有生效,我们还需要在终端输入“jupyter notebook”命令,这样确保Jupyter重新加载jupyter_notebook_config.py,进而使得新配置起效。

放行Linux防火墙的端口(非必须,我的工作站就没有这一步!使用推荐默认端口也OK!)

Jupyter Notebook的设置已经接近尾声。但工作还没有做完。虽然我们开启了访问的端口,但Jupyter Notebook毕竟仅是Linux的一个应用程序,仅仅是它许可开放某个端口,这还不够。Linux还得有个“外交部”——防火墙,只有它许可开放,那才是真的开放。因此,下面的工作就是设置防火墙的端口开放。倘若开放某个端口(如9999),使用如下命令:

jpnb@centos-7 .jupyter]$ sudo firewall-cmd --zone=public --add-port=9999/tcp --permanent
[sudo] jpnb 的密码:****
Success

如果我们开放的不是9999,则修改上述端口号即可。

同样,有了新设置,我们还需要重新启动防火墙,使之生效。使用下面的命令,即可达到重启防火墙的功效:

[jpnb@centos-7 .jupyter]$ sudo systemctl restart firewalld

3.远程Jupyter

“是骡子是马,拉出来溜溜”。

配置了半天,我们看看能不能访问远程的Jupyter文档呢。我们先通过“ifconfig”来查看一下本机IP,这个流程并不是必需的,它主要是要证明,下面Jupyter文档的访问不是本地完成的。

远程SSH登录Jupyter服务器

现在我们远程SSH登录Jupyter服务器(IP地址为192.168.31.176):

YHMacBookPro:~ yhilly$ ssh jpnb@192.168.31.176
jpnb@192.168.31.176's password:
Last login: Thu May 2 14:20:19 2019 from 192.168.31.194

在登录之后,我们启动Jupyter服务器,并让这个服务器后台运行:

[jpnb@centos-7 ~]$ nohup jupyter notebook &
[1] 18505
[jpnb@centos-7 ~]$ nohup: 忽略输入并把输出追加到"nohup.out"

这里简单解释一下nohup的含义,nohup就是不挂起的意思( no hang up)。该命令的一般形式为:

nohup command &

使用&命令后,作业被提交到后台运行,当前控制台没有被占用,否则,一旦把当前终端关掉(退出帐户时),作业就会停止运行。

nohup命令可以在你退出帐户之后继续运行相应的进程。

本地个人PC开启远程Jupyter

然后,我们在地址栏中输入远程服务器的IP和端口号:“http://192.168.31.176:9999/”,如图所示:

Jupyter会提示我们输入先前设置的密码。一旦输入密码后,就可以在浏览器上看到运行的Jupyter文档,如图所示:

具体参考内容:链接[2]

4.气象聚类分析实例

Weather Data Clustering using K-Means Python notebook using data from minute_weather

Clustering with scikit-learn

详情链接:链接[3]

In this notebook, we will learn how 
to perform k-means lustering using
scikit-learn in Python.We will use 
cluster analysis to generate a big 
picture model of the weather at a 
local station using a minute-
graunlarity data. In this dataset,
we have in the order of millions
records. How do we create 12 clusters our of them?

References

[1] 链接.1: https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html [2] 链接.2: https://zhuanlan.zhihu.com/p/64524822 [3] 链接.3: https://www.kaggle.com/prakharrathi25/weather-data-clustering-using-k-means/data

本文分享自微信公众号 - MeteoAI(meteoai),作者:gavin7675

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 气象遇见机器学习

    近些年来关于人工智能(AI)、机器学习(machine learning)、深度学习(deep learning)的新闻数不胜数。各领域也都高举人工智能大旗,试...

    zhangqibot
  • Jupyter Notebook介绍(上篇)

    2019年的第一篇~先祝大家新年快乐!在2019开开心心打代码,顺顺利利debug!

    zhangqibot
  • 当人工智能遇见农业,农民伯伯不再「粒粒皆辛苦」

    场景描述:在农业生产上,利用机器学习,计算机视觉,混合现实等 AI 技术,打造智能化农业,能够将传统的农业生产带到更加高效的方式中来。

    zhangqibot
  • 深度学习之安装 Jupyter

    Notebooks 很快已经成为了数据操作不可或缺的工具。它在 大数据清理和探究,可视化,机器学习, 和 大数据分析中都有广泛运用.

    李小白是一只喵
  • 五个套路看懂微信小程序开发(上)

    你或许听说过,快速入门就是要学最小必要知识。而我最近在看微信小程序的官方教程时发现,这个教程虽然简单,但对于微信小程序开发来说,80%的套路都能从这里学习到,你...

    极乐君
  • CCNP知识点总结——BGP

    版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/...

    魏晓蕾
  • Android新手之旅(2) 新手问题

    1、添加控件,运行,但有一个main.out.xml老是报错,说没有内容 原因:和vs有所不同,eclipse的运行编译与当前打开的文件密切相关,所以就出问题...

    用户1075292
  • 元认知的一点点片言只语 No.87

    If not me , who ? If not now , when ? 最近逐渐发现,认知是一件很好玩很好玩的东西。它有时候能助你跃迁,有时候也能拖住你,...

    大蕉
  • Android新手之旅(2) 新手问题

    1、添加控件,运行,但有一个main.out.xml老是报错,说没有内容 原因:和vs有所不同,eclipse的运行编译与当前打开的文件密切相关,所以就出问题...

    用户1075292
  • day29_Hibernate复习_01

        功能:Dao层(持久层)框架,封装了JDBC。     思想:整合了ORM思想,以面向对象的思想操作数据库。

    黑泽君

扫码关注云+社区

领取腾讯云代金券