写点什么

Jupyter 最佳实践

用户头像
pydata
关注
发布于: 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 更好用的工具 ↩︎


用户头像

pydata

关注

https://justpic.org 2017.12.19 加入

还未添加个人简介

评论

发布
暂无评论
Jupyter最佳实践