Yahoo用Flexible VMs与Auto-Zone保障Spark集群持续运行
DataHot 速览
Yahoo运行着支撑数亿用户的大型数据分析基础设施,其Spark工作负载必须持续高速运行。在Managed Service for Apache Spark(原Dataproc)中,Yahoo通过配置可接受VM规格的排名列表并结合Auto-Zone,让集群自动应对区域容量不足,避免关键数据管道阻塞。该实践基于Yahoo将本地Hadoop和大数据平台迁移到Google Cloud的现代化改造,为大规模批处理和流式分析提供了动态资源灵活性。
为什么值得关注:该案例展示了用灵活VM配置应对云区域容量瓶颈的工程思路,对需要保障关键Spark管线稳定运行的团队有直接参考价值。
译文
AI 逐段翻译作为一家全球媒体和科技公司,将数亿用户与金融、体育和娱乐平台连接起来,雅虎运营着庞大的数据基础设施,其中分析工作负载必须持续高速运行。在截止日期驱动的数据环境中,依赖固定的虚拟机(VM)配置会形成脆弱的系统;如果特定机器型号面临区域容量限制,集群配置在Apache Spark 托管服务(原 Dataproc)可能会遇到延迟并阻塞关键数据管道。
雅虎利用灵活虚拟机在Apache Spark 托管服务集群中,通过定义可接受的虚拟机型号的排序列表,自动吸收这些资源波动。这使得系统能够动态搜索区域可用区并保持管道执行,无需人工干预。为了在区域中搜索容量,团队还必须启用自动区域放置。
这一优化建立在雅虎更广泛的数据现代化转型之旅之上,其中包括将本地 Hadoop 和大数据资产直接迁移到 Google Cloud。通过转换这些传统工作负载,团队建立了一个能够以动态资源灵活性运行大规模批处理和流式分析的云基础。
本文提供了在Apache Spark 托管服务中配置灵活虚拟机实例排序列表的技术蓝图,以自动管理容量限制并保持管道执行。
静态配置的运维权衡
使用单一固定机器类型在特定区域配置集群,在区域可用区容量波动时会产生限制,可能影响集群配置。与其通过自定义重试逻辑或人工干预来管理这些容量变化,使用灵活配置可以让您的基础设施自动适应。通过接受多个虚拟机型号并在所选区域内跨可用区搜索,灵活配置有助于精简配置过程,更好地支持大规模分析工作负载。
配置灵活集群的规则
部署灵活配置需要对齐几个相关的设计选择:
- 启用自动区域放置:您必须传递区域(--region=${REGION})或空的区域字符串(--zone=""),以便托管 Spark 在整个区域搜索可用容量。
- 保持核心和内存对称:如果您的托管 Spark 集群使用自动扩缩容,则灵活列表中的所有机器类型必须具有相似的核心数和内存大小,即使它们来自不同的虚拟机系列。主工作器和辅助工作器之间统一的 CPU 与内存比例可以防止性能下降,因为最小的比例决定了您的有效容器大小。
- 对齐组件属性:托管 Spark 根据虚拟机核心和内存计算系统属性。当混合不同机器型号时,您可能需要显式属性覆盖,以使 YARN 和 Spark 资源分配与预期的工作器行为保持一致。
灵活虚拟机支持大规模工作负载的两种方式
对于大规模数据环境,灵活配置通过两种方式支持操作:
- 更高的集群创建成功率:当首选虚拟机类型缺货时,托管 Spark 会从排序列表中选择,而不是失败,从而保持配置进行。
- 更好的区域资源使用:自动区域放置搜索整个区域以查找容量,这减少了高需求时期的配置摩擦。
gcloud 示例
加载中...
API 示例
您还可以使用 Dataproc API 中的 instanceFlexibilityPolicy 字段将此容量策略构建到自动化管道或Apache Airflow 托管服务DAG 中:
加载中...
此 API 策略实现相同的目标:建立首选型号,记录有效的备选方案,并让托管 Spark 在不中断自动化脚本的情况下解决资源限制。
建立基础设施策略
在这种规模的数据管理需要标准化清晰的资源策略,而不是依赖单一固定的机器类型。您的配置标准应概述:
- 辅助工作器的首选和备用虚拟机系列。
- 默认自动区域放置以启用灵活配置。
- 使用自动扩缩容时配置相同的核心和内存。
- 所有工作器组之间统一的 CPU 与内存比例,以保持可预测的容器大小。
- 显式的 YARN 或 Spark 属性覆盖,以确保不同机器系列上的一致运行时行为。
- 在 Spot 或高度弹性的容量上运行 Spark 工作负载的无随机播放安全模式。
通过采用灵活配置,您将基础设施稀缺性转化为可预测的备用计划,确保关键数据管道持续运行。
雅虎的影响和成果
通过在 Apache Spark 托管服务中实现灵活虚拟机,雅虎成功将由于区域容量缺货导致的集群配置失败减少了 85%。这种灵活配置使他们的数据基础设施能够自动处理容量限制并成功配置资源,无需人工干预。因此,雅虎确保了工作负载的持续执行,并防止了大规模数据管道中的下游处理延迟。
"在雅虎管理大规模数据分析需要弹性、自动化的基础设施。迁移到 Apache Spark 托管服务中的灵活虚拟机改变了我们的方法;当特定机器型号面临容量限制时,我们的集群现在会自动转向排序的备用选项,而不是停滞。这帮助我们将配置失败减少了 85%,提供了维持全球媒体平台平稳运行所需的可靠性。" - Akshay Jain,雅虎高级软件开发工程师
灵活基础设施的战略优势
采用灵活的计算栈,可以将您的环境转变为一个动态资源池,能够适应您的运营需求。通过摆脱僵化的单机类型配置,您可以确保工作负载可靠地访问所需的计算资源,无论供应如何波动。这种转变不仅最大限度地提高了工作负载的可获得性和可靠性,还通过允许您优先使用较新的虚拟机代次,同时将较旧的类型作为可靠的备用选项,促进了无缝的硬件现代化。
构建您弹性数据处理管道
转向灵活的计算策略,可以确保您的关键分析在区域资源变化时仍能保持运行。以下是如何立即开始优化您的基础设施:
- 审计您的工作负载:识别与特定虚拟机系列或区域紧密耦合的应用程序,并规划出可行的替代硬件配置。
- 标准化资源策略:探索托管 Spark 灵活虚拟机文档以确定您首选和备用的虚拟机系列。
- 对齐财务策略:利用灵活承诺使用折扣(Flex CUDs)来保持成本可预测性,当工作负载动态切换到替代机器类型时。
- 领取您的赠金:新客户可能有资格获得300 美元的赠金用于免费试用 Apache Spark 托管服务和其他 Google Cloud 产品。
发布在
这篇内容对你有用吗?
反馈只用于改善内容筛选,不等同于收藏