更多技术沟通、求职时机,欢迎重视字节跳动数据平台微信大众号,回复【1】进入官方沟通群
在 Jupyter 的生态下,除了 Notebook 自身,火山引擎 DataLeap 研制团队还注意到了许多其他组件。彼时,JupyterLab 正在逐渐替代传统的 Jupyter Notebook 界面,成为新的规范。JupyterHub 使用广泛,是多用户 Notebook 的版别答案。
脱胎于 Jupyter Kernel Gateway(JKG)的 Enterprise Gateway(EG),供给了火山引擎 DataLeap 研制团队需要的 Remote Kernel(上述的独立使命 Kernel 环境)才能。2020 上半年,火山引擎 DataLeap 研制团队基于上面的三大组件,进行二次开发,发布了 Notebook 使命类型。

(图:火山引擎 DataLeap 下 Notebook 整体架构)
JupyterLab 前端这一侧,火山引擎 DataLeap 研制团队挑选了基于更现代化的 JupyterLab 进行改造,刨去了它的周边视图,只留下了中心的 Cell 编辑区,嵌入了火山引擎 DataLeap 数据研制的页面中。为了和火山引擎 DataLeap 的视觉风格更符合,从 2020 下半年到 2021 年头,团队还针对性地改进了 JupyterLab 的 UI。
另外火山引擎 DataLeap 研制团队还开发了定制的可视化 SDK,使得用户在 Notebook 上计算得到的 Pandas Dataframe 能够接入火山引擎 DataLeap 数据研制现已供给的数据成果剖析模块,直接在 Notebook 内部做一些简单的数据探查。
JupyterHub供给了可扩展的认证鉴权才能和环境创立才能。首要,由于用户较多,因而为每个用户供给单独的 Notebook 实例不太实际。因而团队决定,按 火山引擎 DataLeap 项目来切分 Notebook 实例,同项目下的用户同享一个实例(即一个项目实际上在 JupyterHub 是一个用户)。这也与 火山引擎 DataLeap 的项目权限体系坚持了一致。
Jupyter Enterprise Gateway供给了在分布式集群(包括 YARN、Kubernetes 等)内部发动 Kernel 的才能,并成为了 Notebook 到集群内 Kernel 的署理。

(图:Enterprise Gateway )
EG 自身供给的 Kernel 类型,和火山引擎内部体系并不彻底兼容,火山引擎 DataLeap 研制团队首要以 Spark Kernel 的方式对接了字节跳动内部的 YARN 集群。Kernel 以 PySpark 的方式在 Cluster 模式的 Spark Driver 运转,并供给一个默认的 Spark Session。
用户能够经过在 Driver 上的 Kernel,直接建议运转 Spark 相关代码。一起,为了满意 Spark 用户的使用习惯,火山引擎 DataLeap 额外供给了在同一个 Kernel 内穿插运转 SQL 和 Scala 代码的才能。
2020 下半年,伴随着云原生的浪潮,火山引擎 DataLeap 研制团队还接入了字节跳动云原生 K8s 集群,为用户供给了 Python on K8s 的 Kernel,还扩展了许多自定义的才能,例如支持自定义镜像,以及针对于 Spark Kernel 的自定义 Spark 参数。
现在 Notebook 使命已成为字节跳动内部使用较为高频的使命类型,用户能够在火山引擎 DataLeap 官网开通交互式剖析的版别,使用到 DataLeap 的 Notebook 使命。
点击跳转 火山引擎大数据研制管理DataLeap 了解更多