运行微基准测试
使用左侧菜单链接连接到 系统控制台。
连接到 sparkrunner pod。
kubectl exec --stdin --tty sparkrunner-0 -- /bin/bash
cd 到 /home/spark/spark-scripts 并执行 系统控制台 中的
/home/spark/spark-scripts/lp-runjupyter-etl-gpu.sh
或/home/spark/spark-scripts/lp-runjupyter-etl-cpu.sh
。在左侧菜单中打开 桌面 链接,然后单击 VNC 连接按钮。
在 Linux 桌面中打开 Web 浏览器。
浏览到 172.16.0.10:30002。
您应该看到上面的列表。
启动 Spark History Server。
在 Jupyter notebook 浏览器中,在右上角选择 NEW 下拉菜单,然后选择 Terminal。
在新打开的选项卡中,使用以下命令启动 Spark History Server
bash /opt/spark/sbin/start-history-server.sh
可以通过浏览到 172.16.0.10:30000 访问 Spark History Server
单击
lp-microbenchmark.ipynb
链接,这应该会启动 Jupyter notebook。注意请在运行 notebook 之前“信任”它。
使用以下命令验证微基准测试 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
通过单击 Cell -> Run All 运行 notebook。
可选: 如果您想尝试不同的数据集,有几个选项可用。
在之前的示例 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 \
记下两个基准测试的计时,以便您可以与 CPU 运行时间进行比较。
通过在启动 notebook 的系统控制台窗口中按 ctrl-c 来停止您在步骤 1 中启动的 notebook。当询问您是否要“关闭此 notebook 服务器?”时,回答 Y。
仅使用 CPU 运行相同的微基准测试。
执行
lp-runjupyter-etl-cpu.sh
脚本。
比较两个输出之间的差异。
您必须关闭 notebook 选项卡,然后关闭 notebook 才能启动另一个会话。如果未完成此操作,您将无法启动另一个 Spark 会话。