Jupyter最佳实践

发布于: 2020 年 05 月 30 日

主要从jupyter产品介绍、产品(jupyter notebook、jupyter lab和jupyterhub)的安装试用、jupyter 扩展优化、以及jupyter竞品分析等四大方面对jupyter的实践进行一个简短的介绍和回顾:

jupyter产品介绍:

根据jupyter官方网站,jupyter产品主要包括jupyter notebook、jupyter lab和jupyterhub三款产品,根据文章jupyter notebook、jupyterlab与jupyterhub的区别与联系1,三者的联系和区别如下:

  1. jupyter notebook提供了一个交互友好的类webIDE环境,但Jupyter Notebook 是传统的单体服务架构模式, 缺少多用户管理和访问认证等方面的功能, 无法直接部署于计算集群上, 难以充分利用和调度计算中心的计算资源 。

  2. jupyter lab提供了单用户管理和认证,没有提供独立的工作空间,与jupyter notebook相比,功能更为丰富。

  3. jupyter hub提供了多用户管理和认证,支持OAuth协议,为用户提供了独立的工作空间,工作内容可以私有不共享。

在了解了jupyter系列产品后,就可以进行产品的安装和使用了。当然你也可以参考这些文章22和33、44、55来快速入门jupyter的使用.

产品安装使用

安装

根据以上的产品介绍,可以根据自己的需求选择安装jupyter notebook、jupyter lab还是jupyterhub。具体参考建议如下:

  1. 个人本地使用,安装快速方便–jupyter notebook

  2. 个人使用,可能会远程操作,需要额外的安装工作–jupyter lab

  3. 小型团队使用,可能需要额外的运维工作– jupyter hub

安装jupyter notebook

jupyter notebook目前已经包含在Anaconda安装包中,随Anaconda将一同安装,不需要额外的安装操作,如果你想了解更多jupyter notebook安装细节,可以参考文章6和文章7

安装jupyter lab

jupyter lab可以通过pip,conda命令(Anaconda环境)作为jupyter notebook的扩展进行选装。 安装命令如下:

pip install jupyterlab
#或者
conda install -c conda-forge jupyterlab

使用过程中,jupyterlab的作用更像一个功能强大的webshell,除支持文件上传,命令行等操作外,能够更直观地管理jupyter notebook的其他扩展。

安装jupyterhub

jupyterhub的docker化安装步骤如下:

#step1.创建共享目录
$mkdir -p $(pwd)/jupyterhub/jupyterhub
$mkdir -p $(pwd)/jupyterhub/home
#step2.启动镜像
#docker run -p 8000:8000 -d --name jupyterhub -v /opt/jupyterhub/jupyterhub:/srv/jupyterhub -v /opt/jupyterhub/home:/home --restart=always jupyterhub/jupyterhub jupyterhub
docker run -p 8000:8000 -d --name jupyterhub -v $(pwd)/jupyterhub/jupyterhub:/srv/jupyterhub -v $(pwd)/jupyterhub/home:/home jupyterhub/jupyterhub jupyterhub
#step3.进入到容器内操作
docker exec -it jupyterhub bash
chmod -R 777 /home
#step4.添加用户和设置密码
useradd jupyterhub
passwd jupyterhub
#step5.浏览器访问测试
http://{yourip}:8000
!替换yourip为本机ip地址

使用

启动jupyter

  1. 启动jupyter notebook1jupyter notebook # 更多命令可额外输入--help进行查看

  2. 启动jupyter lab1jupyter lab # 更多命令可额外输入--help进行查看

excel表格处理

jupyternotebook中使用pandas可以方便的处理excel文件,简单的差集、并集、交集运算使用几句简单的代码即可完成。

数据可视化分析

结合pandas工具包可以非常方便的进行数据的基础分析,使用plot工具包可以完成交互性比较友好的动态数据分析图表。

jupyter扩展

为了提升jupyter的使用体验,目前已经有非常多的jupyter扩展可供使用,其范围除了优化其本身可视化交互体验之外,还涵盖了排版、多语言支持等功能。

文章88介绍了常用的99种jupyter扩展, 文章99中所介绍的扩展主要围绕人工智能(AI)进行展开, 文章1010介绍了提升jupyter使用环境体验的相关实践, 文章1111介绍了扩展jupyter的99种方法, 文章1212介绍了生成pages的方法, 文章1313中通过低代码方式使用jupyter notebook,进一步降低了jupyter的难度、提高了jupyter的交互友好度。 文章1414主要介绍了jupyter notebook的基础架构,如果需要进行进一步应用开发集成,对其基础架构了解是必须的。

pyspark集成

大数据相关技术的发展,jupyter支持与spark进行相关集成

技术架构分析

jupyter 使用了较新的web技术(Websocket等)来保证用户交互的友好性,提供了一种混合的编辑方式, 将程序 代码运行、文字图表编辑等功能糅合在同一电子笔记中, 打破了两者之间的隔离界限.fastpage12介绍了将jupyternotebook内容导出为page,可以直接应用于博客或者出版,进一步提高了jupyter的可扩展性。为了集成和二次开发jupyter,通过文章技术架构分析14中对jupyter的技术架构进行简单的了解,得出如下jupyter架构图,

架构图

jupyter竞品分析

通过搜索,Netflix发布的Polynote15有可能成为jupyter的竞品,除此之外,阿里巴巴、kaggle以及大多数据竞赛平台也开始提供类似jupyter的数据分析平台以方便开发者快速使用。

如果你有更好的想法和建议,欢迎留言。

参考


  1. jupyter notebook、jupyterlab与jupyterhub的区别与联系 ↩︎

  2. 数据科学和机器学习,jupyternotebook入门指南 ↩︎

  3. 快速学习jupyternotebook ↩︎

  4. jupyter notebook数据格式解析 ↩︎

  5. latex数学符号 ↩︎

  6. 十分钟搭建你的jupyternotebook服务器 ↩︎

  7. 使用jupyternotebook进行远程炼丹 ↩︎

  8. 让jupyter更强大的99中武器 ↩︎

  9. Elyra:基于AI技术的JupyterLab实用扩展集 ↩︎

  10. Elevate Your Jupyter Notebook Environment Experience ↩︎

  11. 扩展Jupyter生态系统的99种方法 ↩︎

  12. jupyter生成pages ↩︎

  13. 低代码方式使用jupyter ↩︎

  14. jupyter notebook架构分析 ↩︎

  15. 还有比 Jupyter 更好用的工具 ↩︎

发布于: 2020 年 05 月 30 日 阅读数: 5
用户头像

pydata

关注

https://justpic.org 2017.12.19 加入

还未添加个人简介

评论

发布
暂无评论
Jupyter最佳实践