VS代码与海洋的集成Apache火花

海洋为Apache引发了支持集成Jupyter笔记本在相当一段时间内——详情,请参阅我们的文档。然而,许多开发人员想要这种互动笔记本在他们熟悉的IDE,比如VS代码,这样他们可以受益于其他IDE内置功能包括Git集成。本文描述了如何使用VS代码运行Jupyter笔记本,而海洋Apache火花集群上执行代码。

这个设置提供了以下优点:

  • 作为Apache海洋引发Kubernetes上运行,不需要提供一个集群发展的目的。
  • 由于集群自动上下尺度,没有必要数据工程师或科学家猜测集群的规模,他们需要为他们的发展提供的目的。
  • 每个开发人员可以独立运行代码而不用担心计算资源,别人没有开发人员可以饿死。雷竞技rabet官网
  • 每个开发人员可以开发和测试不同版本的火花,和自己的依赖项和第三方库,而不影响其他集群。
  • 自动定量发生在几乎实时,不需要设置一个时间把计算资源。雷竞技rabet官网
  • 使有效利用现场实例从多个实例家庭云提供商降低基础设施成本。

简而言之,海洋为Apache火花完全消除基础设施管理的负担,并提供一个不断优化和自动定量的基础设施,以便开发人员可以专注于解决业务问题。

设置一个VS代码环境

请遵循以下步骤:

  1. 克隆或下载海洋火花回购的例子:https://github.com/spotinst/ocean-spark-examples
  2. 下载最新版本的VS代码。
  3. 从微软安装Jupyter插件。
  4. 复制.vscode文件夹和.gitignore文件到代码的根文件夹,您将入住的Git存储库文件夹克隆/第1步中下载。
  5. 当你想创建或选择文件夹创建您的笔记本电脑。请点击文件菜单,单击文件- >新文件…并选择Jupyter笔记本。
  6. 一个Jupyter笔记本VS代码编辑器中打开。请保存它,例如VSCodeNotebookExample.ipynb在这个示例中描述。
  7. 点击文件- >新文件…并选择文本文件。将其保存为Dockerfile Dockerfile并添加以下内容。
    从gcr。io / datamechanics /火花:平台- 3.2最新用户root运行apt-get更新& & apt-get安装- y python3 python3-pip libffi-dev ENV PYSPARK_MAJOR_PYTHON_VERSION = 3 WORKDIR / opt /应用程序/复制/ VSCodeNotebookExample。ipynb。pip3安装jupyter跑jupyter nbconvert VSCodeNotebookExample.ipynb——脚本
  8. 上述Dockerfile ipynb文件转换为python文件码头工人形象构建过程中。如果你想使用任何第三方库,包括他们的文件并运行它在上面的脚本。
  9. 文件夹结构应该类似于下图:
  10. 点击图标运行和调试。如果你看到“运行和调试”按钮,点击它。
  11. 选择“连接到远程Jupyter”如果尚未选中并点击播放按钮(三角形)。
  12. 当提示输入海洋Apache火花集群id和回车。海洋对于Apache火花集群ID
  13. 输入您的个人访问令牌当提示和回车。输入访问令牌
  14. 您应该看到笔记本应用从终端。复制URL在输出:
  15. 点击浏览器,打开代码文件,例如VSCodeNotebookExample.ipynb
  16. 点击视图- >命令面板…并选择“Jupyter:指定Jupyter服务器进行连接。”
  17. 点击步骤14中现有的和复制URL复制并单击Enter。
  18. 点击内核选择器右边。
  19. 它应该显示模板可用在海洋Apache火花。选择您想要使用的模板运行笔记本。
  20. 你可以在笔记本上运行命令。当你运行该命令时,你可能会看到笔记本应用开始在现场控制台界面。

的端到端示例使用Github行动和气流

下面的例子展示了如何使用Github行动,Github容器注册表和气流运行一个笔记本应用程序的端到端。请注意您可以使用您最喜爱的Git存储库,CI / CD工具,容器注册表和工作流的工具。

做出改变,从VS代码签入代码

当你在VS代码更改代码编辑器并保存文件,它显示了pending changes源代码控制图标。

单击源代码控制图标,输入提交消息,点击提交。

并点击提交更改到远程存储库同步更改。

构建和码头工人形象推入容器注册表

在Github,创建两个Github的秘密

  • GHCR_PASSWORD——使用这个秘密码头工人的照片发布到Github码头工人容器注册表。个人访问令牌与这个秘密有读、写和删除包的权限。
  • GHCR_PULL_PASSWORD——在api中使用这个秘密,气流将图像从容器注册表。与这个秘密读过相关的个人访问令牌包的权限。

在Github库,创建一个新的工作流从存储库的操作菜单(操作- >新工作流)。在选择一个工作流的屏幕,显示了这个库码头工人形象的建议部分。点击“配置。“给它一个名称等vscode-jupyter-notebooks-cicd.yml,使用以下模板。直接点击“开始提交”和提交的主要分支。

每当一个代码签入的“vscode-jupyter-notebooks”文件夹存储库中的主要分支,图像被构建并存储在注册中心Github容器。

在气流中创建Kubernetes秘密并使用它

创建一个连接到Github Kubernetes秘密码头工人容器注册图像。确保你创建的秘密spark-apps名称空间。

下面的说明提供步骤创建命令行中使用的秘密kubectl:

  • 将背景设置为“spark-apps”名称空间。
= spark-apps kubectl配置设置上下文——当前的名称空间
  • 创建这个秘密。
kubectl创建秘密docker-registry{提供一个名称,如github-pull-image-secret}——docker-server = " https://ghcr。io /”——docker-username = {Github用户名}——docker-password ={个人访问令牌,有包读权限}——docker-email = {Github的电子邮件用户}
  • 使用上面创建的Kubernetes秘密的配置覆盖部分气流DAG。
config_overrides ={“类型”:“Python”、“sparkVersion”:“3.2.0”、“imagePullSecrets”:“github-pull-image-secret”,“图像”:“ghcr。io /{路径图像}”,……}

结论——最后的想法

能够使用VS代码的开发环境和海洋Apache火花作为计算层提供了最好的开发人员经验和廉价的计算数据工程应用发展。

上面的例子显示了Github行动和Github容器注册但你可以使用任何你喜欢的CI / CD工具和容器注册中心建立和主机码头工人的照片。

海洋开始使用Apache火花

VS代码只是其中几个内置集成海洋Apache火花支持帮助数据团队运行他们的应用程序与Kubernetes火花。学习如何您可以很容易地设置、配置和规模应用火花和Kubernetes集群与海洋Apache火花。你被邀请安排一个初始会议与我们团队的Apache火花解决方案架构师,我们可以讨论你的雷电竞官网进入用例和帮你做一个成功的新员工培训的平台。