通过零代码更改加速 Apache Spark

运行微基准测试

  1. 使用左侧菜单链接连接到 系统控制台

  2. 连接到 sparkrunner pod。

    复制
    已复制!
                

    kubectl exec --stdin --tty sparkrunner-0 -- /bin/bash


  3. cd 到 /home/spark/spark-scripts 并执行 系统控制台 中的 /home/spark/spark-scripts/lp-runjupyter-etl-gpu.sh/home/spark/spark-scripts/lp-runjupyter-etl-cpu.sh

  4. 在左侧菜单中打开 桌面 链接,然后单击 VNC 连接按钮。

    spark-rapids-004.png

  5. 在 Linux 桌面中打开 Web 浏览器。

    spark-rapids-005.png

  6. 浏览到 172.16.0.10:30002。

    spark-rapids-006.png

  7. 您应该看到上面的列表。

  8. 启动 Spark History Server。

    • 在 Jupyter notebook 浏览器中,在右上角选择 NEW 下拉菜单,然后选择 Terminal

    spark-rapids-007.png

    • 在新打开的选项卡中,使用以下命令启动 Spark History Server

    复制
    已复制!
                

    bash /opt/spark/sbin/start-history-server.sh

    spark-rapids-008.png

    • 可以通过浏览到 172.16.0.10:30000 访问 Spark History Server

    spark-rapids-009.png

  9. 单击 lp-microbenchmark.ipynb 链接,这应该会启动 Jupyter notebook。

    spark-rapids-010.png

    注意

    请在运行 notebook 之前“信任”它。

    spark-rapids-011.png

  10. 使用以下命令验证微基准测试 pod 的创建。

    • 打开另一个 系统控制台

    复制
    已复制!
                

    kubectl get pods | grep app-name

    • 输出应与此类似。

    复制
    已复制!
                

    app-name-79d837808b2d2ba5-exec-1 1/1 Running 0 31m app-name-79d837808b2d2ba5-exec-2 1/1 Running 0 31m app-name-79d837808b2d2ba5-exec-3 1/1 Running 0 31m

    • 如果您看到您的 pod 处于 PENDING 状态,则表示之前的 pod 未正确关闭。您可以使用以下命令删除这些 pod

    复制
    已复制!
                

    kubectl delete pod app-name-XXXX

  11. 通过单击 Cell -> Run All 运行 notebook。

    spark-rapids-012.png

  12. 可选: 如果您想尝试不同的数据集,有几个选项可用。

    • 在之前的示例 notebook 中,您使用的是预先暂存的比例因子 1000(1TB) 数据集,这些数据集存储在具有只读权限的 AWS S3 存储桶中。

    • 如果您想在您的 Google 存储上使用其他数据集,您可以基于您的 GCP 服务帐户的密钥创建 k8s secret。

    复制
    已复制!
                

    kubectl create secret generic gcp-key --from-file=key.json=./your-gcp-key.json

    • 然后将 AWS S3 配置更新为 GCP 配置。

    复制
    已复制!
                

    --conf spark.kubernetes.driver.secrets.gcp-key=/home/spark/ \ --conf spark.kubernetes.executor.secrets.gcp-key=/home/spark/ \ --conf spark.hadoop.fs.AbstractFileSystem.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS \ --conf spark.hadoop.google.cloud.auth.service.account.json.keyfile=/your-path/your-gcp-key.json \

  13. 记下两个基准测试的计时,以便您可以与 CPU 运行时间进行比较。

    spark-rapids-013.png

  14. 通过在启动 notebook 的系统控制台窗口中按 ctrl-c 来停止您在步骤 1 中启动的 notebook。当询问您是否要“关闭此 notebook 服务器?”时,回答 Y。

  15. 仅使用 CPU 运行相同的微基准测试。

    • 执行 lp-runjupyter-etl-cpu.sh 脚本。

  16. 比较两个输出之间的差异。

注意

您必须关闭 notebook 选项卡,然后关闭 notebook 才能启动另一个会话。如果未完成此操作,您将无法启动另一个 Spark 会话。

© 版权所有 2022-2023,NVIDIA。 上次更新于 2023 年 6 月 23 日。