本页包含有关 Managed Service for Apache Spark 无服务器部署的常见问题及解答。除非另有说明,否则此信息仅适用于 Managed Service for Apache Spark 无服务器部署,而不适用于集群部署。
我应该何时使用 Managed Service for Apache Spark 无服务器部署,而不是 Managed Service for Apache Spark 集群部署?
Managed Service for Apache Spark 无服务器部署:
- 支持 Spark 批量工作负载和 PySpark 内核 Jupyter 笔记本中的交互式会话。
- 创建和管理您的工作负载和交互式会话基础架构。
Managed Service for Apache Spark 集群部署:
支持提交不同类型的 Spark 作业,以及基于其他开源组件(例如 Flink、Hadoop、Hive、Pig、Presto 等)的作业。
不创建和管理基础架构。您需要创建和管理 Managed Service for Apache Spark 集群。
Managed Service for Apache Spark 无服务器部署有哪些用途?
使用 Managed Service for Apache Spark JupyterLab 插件进行无服务器批量和 交互式笔记本会话。
使用 Spark 流式处理库运行流式处理作业。注意:流式处理不是代管式服务,因此您必须管理检查点和重启。
使用 Spark MLlib 训练模型。
使用交互式 SQL 笔记本进行数据探索、图表、时序和地理空间分析。
使用 Managed Service for Apache Airflow(一项托管式 Apache Airflow 服务)编排 Managed Service for Apache Spark 工作负载。
我应该如何设置工作负载执行计划?
您可以并发或按顺序运行工作负载。您的执行计划 会影响您的 Google Cloud 资源配额。您可以并行运行的工作负载数量取决于批量资源配额。
我能否将自定义映像与 Managed Service for Apache Spark 无服务器部署搭配使用?
- 可以。您可以使用自定义容器映像,而不是默认容器映像。 请参阅将自定义容器与 Managed Service for Apache Spark 搭配使用。
我能否为 Managed Service for Apache Spark Spark 工作负载指定内存和磁盘资源?
可以。您可以在提交工作负载时指定高级执行器和驱动程序计算和 磁盘层级,以及要分配的驱动程序和执行器计算和磁盘资源量 (请参阅 资源分配属性)。
如何为 Managed Service for Apache Spark VPC 网络指定 IP 地址范围?
Managed Service for Apache Spark 工作负载在您的环境中运行。
无服务器 Spark 工作负载中的每个 Spark 驱动程序和 Spark 执行器都会占用
Managed Service for Apache Spark VPC 网络中的一个内部 IP 地址。
/16 是 Managed Service for Apache Spark VPC 网络中用户指定的典型
CIDR 地址范围
。
您可以根据计划运行的并发工作负载数量来限制网络的 IP 地址范围。
Managed Service for Apache Spark 是否支持数据驻留?
支持。您可以指定处理工作负载的区域。 在指定区域中找到输入和输出数据集。
Managed Service for Apache Spark 如何在指定区域内选择可用区来运行工作负载?
Managed Service for Apache Spark 会根据容量和可用性选择 Compute Engine 可用区来执行工作负载。如果某个可用区在工作负载启动后变得不可用,则工作负载会失败,您必须重新提交失败的工作负载。
Managed Service for Apache Spark 工作负载如何使用计算资源?
每个工作负载都在自己的计算资源上执行。多次批量提交不会共享或重复使用计算资源。
最佳实践:
针对中等运行时间的作业(而不是短时间运行的作业)优化工作负载。
在 Cloud Storage 中保留多个工作负载访问的数据。
在哪里可以找到有关 Managed Service for Apache Spark 公告、功能、bug 修复、已知问题和弃用的信息?
请参阅 Managed Service for Apache Spark 发行说明。
并发工作负载是否会争用资源?
只有当资源配额不足以运行所有并发运行的工作负载时,Managed Service for Apache Spark 工作负载才会争用资源。 否则,工作负载之间会完全隔离。
Managed Service for Apache Spark 配额是如何分配的?
Managed Service for Apache Spark 批量会消耗 Google Cloud 资源。 如需了解详情,请参阅 Dataproc Serverless 配额。
我是否需要设置 Managed Service for Apache Spark 永久性历史记录服务器?
您可以选择设置永久性历史记录服务器 (PHS) 以与 Managed Service for Apache Spark 搭配使用。您可以使用 PHS 在标准 Managed Service for Apache Spark 暂存和临时存储桶 90 天保留期 (TTL) 内和 之后,在指定的 Cloud Storage 存储桶中查看 Spark 事件和其他日志。
有哪些 Managed Service for Apache Spark Spark 日志可用?
在 Spark 工作负载执行期间和之后,Spark 执行器和驱动程序日志可在 Cloud Logging 中找到。此外,在工作负载运行时,Spark 应用也会显示在 永久性历史记录服务器 (PHS) 网页界面中(在 PHS 界面中选择 PHS > Incomplete Applications )。
如果您设置了 Managed Service for Apache Spark PHS,则可以持久访问 Cloud Storage 中保存的 Spark 事件日志,这些日志可提供有关 Spark 应用执行情况的洞见,例如 DAG 和执行器事件。
我能否为 Spark 工作负载设置执行器数量?
可以。您可以使用
spark.executor.instances
属性为 Spark 工作负载设置执行器数量。不过,工作负载可以使用的总核心数比执行器数量更重要,因为 Spark 每个核心运行 1 个任务。例如,如果一个工作负载有 4 个执行器,每个执行器有 2 个核心,则它将同时运行 4 * 2 = 8 个任务。对于有 2 个执行器(每个执行器有 4 个核心)的工作负载,它也会运行相同数量的任务。由于每个工作负载的核心数相同,因此它们将运行相同数量的任务。您可以使用
spark.executor.cores
属性为 Managed Service for Apache Spark 工作负载设置每个执行器的核心数。
Managed Service for Apache Spark 使用哪些 Spark 指标进行自动扩缩?
Managed Service for Apache Spark 会查看 maximum-needed 和 running Spark 的动态分配指标,以确定是扩容还是缩容。
请参阅 Managed Service for Apache Spark 自动扩缩。
我能否使用 Spark 属性配置 Managed Service for Apache Spark 自动扩缩行为?
可以。Managed Service for Apache Spark 自动扩缩基于 Spark 动态分配,并且默认处于启用状态。您可以调整以下 Spark 属性 和 Spark 动态分配属性:
spark.executor.instancesspark.dynamicAllocation.initialExecutorsspark.dynamicAllocation.minExecutorsspark.dynamicAllocation.maxExecutors
为什么需要将代码打包到 JAR 文件中才能提交 Spark 工作负载?
Spark 是用 Scala 编写的,这意味着驱动程序和工作器进程都作为 JVM 进程运行。在 JVM 语言中,JAR 文件是打包代码的主要方式。您可以在提交工作负载时将 JAR 文件传递给 Managed Service for Apache Spark。