You need to enable JavaScript to run this app.
E-MapReduce

E-MapReduce

复制全文
EMR on VKE最佳实践
EMR on VKE Jupyter 使用指南
复制全文
EMR on VKE Jupyter 使用指南

火山引擎 EMR on VKE 为您提供了 JupyterGE、JupyterLAB 两种Jupyter服务,集群中部署了这两种服务后,您即可使用EMR on VKE的Jupyter服务来开发任务代码。本文为您介绍EMR on VKE Jupyter的使用指导。

前提条件

使用此功能前,您需前在集群中部署JupyterGE、JupyterLAB服务。
Image
如果此前集群为部署,您可在集群的“服务列表”页面右上角单击“添加服务”,按界面提示部署好这两个服务。

连接 EMR on VKE Jupyter

使用 Jupyter WebUI

  1. 安装JupyterLab 和Jupyter EG后,您可以在集群的“访问链接”页面看到 JupyterEG WebUI 和 JupyterLab WebUI。
    Image
  2. 单击 JupyterLab WebUI 链接后,可以进入JupyterLab可视化界面的登录页面。
    Image
    • 在登录页面输入登录认证的token(即服务的jupyter_token参数取值)。
    • 您可以在 JupyterLab 服务的服务参数中查询到jupyter_token的取值。
      Image
  3. 登录进入 JupyterLab WebUI 后,您可以看到默认内置三种kernel.
    Image

使用 VSCode 连接

JupyterLab支持Vscode 连接,您可以使用VSCode远程连接到EMR on VKE中的jupyterlab服务后,直接在VSCode中进行jupyterlab的操作。
以下为您示例使用 VSCode 连接的主要步骤,更多详细介绍请参见:详细参考文档

  1. 打开 VSCode 后,安装vscode jupyter插件。
    Image
  2. 安装完成后,添加外部Jupyter Server连接。
    1. 打开vscode命令行(command+shift+P),输入“>jupyter”,选择创建新的Jupyter Notebook。
      Image
    2. 在右上角:选择内核 -> 现有jupyter服务器
      Image
    3. 输入EMR on VKE Jupyter WebUI地址。
      Image
    4. 填写密码(密码可通过服务中的:jupyter_token参数取值获取到,详情见上文“使用 Jupyter WebUI 章节)。
      Image
  3. 完成上述配置后,即可完成接入。
    Image

Kernel 使用说明

以下以使用 Jupyter WebUI 为例,为您示例 Kernel 的详细使用说明。

Python Kernel

选择Python on Kubernetes 使用。
Image

Python代码编写

  • 可在cell中编写python代码执行
    Image
  • 按住tab可以触发代码提示
    Image

Debug

  1. Python kernel 支持debug,点击右上角的Enable Debugger按钮,开启debug模式
    Image
  2. 开启后,可以在代码左侧打上断点,执行后右侧能看到变量、堆栈等debug信息
    Image

PySpark(Client 模式)

EMR on VKE 支持开箱即用的Spark client模式,您可以在Python kernel中提交一个spark-client模式的spark任务(Driver 运行在python kernel中,Executor单独运行在vke集群中 )

SparkSession启动

  1. 在notebook中执行如下代码,启动sparkSession.

    from pyspark.sql import SparkSession
    from pyspark.storagelevel import StorageLevel
    import os
    KUBERNETES_SERVICE_HOST = os.environ['KUBERNETES_SERVICE_HOST']
    KUBERNETES_SERVICE_PORT = os.environ['KUBERNETES_SERVICE_PORT']
    spark = SparkSession.builder \
            .appName("ReadTOSAndCount") \
            .master(f"k8s://https://{KUBERNETES_SERVICE_HOST}:{KUBERNETES_SERVICE_PORT}") \
            .getOrCreate()
    
  2. 启动后则可以执行spark相关代码
    Image

  3. 进入对应VKE集群页面中,您可以在工作负载中看到启动了的对应的executor。
    Image

读写TOS

  1. 如果需要读写tos,可以在EMR on VKE JupyterEG配置中,分别配置 ve_access_key 和 ve_secret_key 为您的AK/SK
    Image
  2. 配置后重启JupyterEG服务,使配置生效。
    Image
  3. 重启JupyterEG服务后,即可通过spark 读写TOS。
    Image

查看Spark Web UI

注意

需要EMR on VKE集群中提前安装Spark组件。

  1. 如果您希望Spark任务结束后,能够查看历史作业UI,可以通过在EMR on VKE JupyterEG配置中,分别配置以下服务参数。
    Image
    • ve_access_key、ve_secret_key为您的TOS读写AK/SK
    • spark_event_log_dir 为存储History uimeta文件的tos地址,需要与您的Spark组件中中的:event_log_dir 配置对齐
    • spark_uiservice_enabled:设置为:true
  2. 配置后重启JupyterEG服务,使配置生效。
    Image
  3. 重启后,您在python kernel里将SparkSession stop 或者将kernel关闭后,即可在Spark History WebUI里看到作业。
    Image

Scala Kernel

  1. 选择Scala on Kubernetes 使用
    Image
  2. 可在notebook编辑、执行对应代码。
    Image

Spark Operator Kernel

Spark Operator Kernel利用EMR on VKE Spark Operator能力,启动后会在集群创建一个Cluster模式的SparkApp,
选择Spark Operator (Python) Kernel即可启动。

注意

  • 需要EMR on VKE集群中提前安装Spark组件。
  • 如果是后安装的Spark组件,需要您在Jupyter EG中的:kernel_sparkoperator_namespace 配置设置为Spark Operator所在的namesapce
  1. 选择 Spark Operator (Python) Kernel 使用。
    Image
  2. 启动后会自带SparkSession,您可以基于此进行数据处理。
    Image

EMR Serverless Spark Kernel

EMR On VKE JupyterLab支持连接到EMR Serverless Spark,

  1. 您可以在JupyterLab配置项里进行相关配置修改,具体参数如下。
    Image
    • kernel_username:notebook
    • enterprise_gateway_url:为EMR Serverless Jupyter 网关服务地址。参考如下:
      • 华北公网 endpoint:https://notebook-eg.emr.cn-beijing.volces.com
      • 华北内网 endpoint:http://ep-xxxx.privatelink.volces.com,详细内容请参考(可选)配置内网Endpoint
    • enterprise_auth_token:为EMR Serverless Jupyter 网关服务访问Token,需要工单联系EMR Serverless 提供。
    • serverless_spark_conf:为EMR Serverless Jupyter 网关服务访问Conf,需要通过--conf的方式设置访问的AK/SK 以及相关的Spark Conf。
  2. 设置后重启Jupyterlab,重新登录后,则可以直接使用EMR Serverless Spark Kernel。
    Image
  3. 进入后等待Kernel 完成initializing,即可使用。
    Image
  4. 启动时,您可以在EMR Serverless 控制台的作业列表找到对应的作业
    Image
  5. Kernel与Serverless Spark作业,您可以通过:spark.sql('set spark.app.id').show() 拿到对应的作业id。
    Image
最近更新时间:2026.01.19 18:13:09
这个页面对您有帮助吗?
有用
有用
无用
无用