共计 1445 个字符,预计需要花费 4 分钟才能阅读完成。
更多技术交换、求职机会,欢送关注字节跳动数据平台微信公众号,回复【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 理解更多