目录

Jupyter最佳实践

广受各大企业赞助的jupyter团队所开发的jupyter系列产品(主要包括jupyter notebook、jupyterlab和jupyterhub),在数据科学领域变得越来越火热,依托python强大的语言生态,得益于其良好的扩展性和友好的用户交互,jupyter逐渐成为数据分析可视化的首选开源工具之一,下面将对数据分析实践过程中针对jupyter的调研分析进行小结.如果你正在使用python语言进行相关数据分析,本文所记录的jupyter相关实践可能对你会有所帮助。

文章的部分内容被密码保护:


本文将主要从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的扩展进行选装。 安装命令如下:

1
2
3
pip install jupyterlab
#或者
conda install -c conda-forge jupyterlab

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

安装jupyterhub
jupyterhub的docker化安装步骤如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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 notebook
    1
    
    jupyter notebook # 更多命令可额外输入--help进行查看
    
  2. 启动jupyter lab
    1
    
    jupyter 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架构图,
/images/posts/jupyter-arch.jpg

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 更好用的工具 ↩︎