spark调优参数(spark3.0新特性)

技术Spark 3.0内置支持GPU调度的示例分析这篇文章将为大家详细讲解有关Spark 3.0内置支持GPU调度的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

本文将详细解释Spark 3.0中内置支持GPU调度的示例分析。这篇文章的内容质量很高,所以边肖会分享给大家参考。希望你看完这篇文章后有所了解。

如今,大数据和机器学习已经大大结合。在机器学习中,由于计算迭代时间可能很长,开发人员一般会选择使用GPU、FPGA或TPU来加快计算速度。在Apache Hadoop版本中,已经内置了本机支持GPU和FPGA。

Spark  3.0内置支持GPU调度的示例分析

Spark作为一个通用计算引擎,当然也不会落后太多。来自Databricks、NVIDIA、谷歌和阿里巴巴的工程师正在为ApacheSpark添加本机GPU调度支持。该解决方案填补了Spark在GPU资源任务调度方面的空白,将大数据处理和AI应用有机融合,拓展了Spark在深度学习、信号处理和重大数据应用方面的应用场景。

这项工作的问题可以在SPARK-24615中查看。

相关spip (spark项目改进建议)文件可在spip:加速器感知调度中找到。

Spark  3.0内置支持GPU调度的示例分析

目前,Apache Spark支持的资源管理器shate和Kubernetes已经支持GPU。为了让Spark也支持GPU,需要在技术层面进行两项重大改变:

在集群管理器层面,集群管理器需要升级以支持GPU。并为用户提供相关的API,让用户可以控制GPU资源的使用和分配。

在Spark内部,需要在调度器层面进行修改,使调度器能够识别用户任务请求中对GPU的需求,然后根据执行器上的GPU供给完成资源分配。

因为让Apache Spark支持GPU是一大特色,所以项目分为几个阶段。在Apache Spark版本中,独立、纱和Kubernetes资源管理器下将支持GPU,现有的正常作业基本不受影响。对TPU的支持、对Mesos Explorer中GPU的支持以及对Windows平台的GPU支持将不是本次发布的目标。而且,这个版本不支持GPU卡中的细粒度调度;Apache Spark版本将把一个GPU卡和它的内存作为一个不可分割的单元。

1、Spark Scheduling

在这个级别,我们必须允许指定来自RDD/PandasUDF API的资源请求,这应该在DAGScheduler中进行总结。TaskSetManager管理每个阶段的未完成任务,我们需要用GPU请求来处理那些任务。对于不需要GPU的作业,调度行为和效率应该和以前一样。

目前,CPUS_PER_TASK(spark.task.cpus)是一种int类型的全局配置,用于指定每个任务应该分配的核心。为了支持GPU配置,引入了spark . task . GPU参数来指定每个任务需要申请的GPU数量。如果用户没有指定Spark . task . CPU或spark.task.gpus,spark程序将使用默认值;因为需要向后兼容,所以如果用户没有指定spark . task . CPU或spark.task.gpus,这两个参数的默认值分别是1和null。

对于执行器后端来说,它需要能够识别和管理GPU,并将这些信息(如修改现有的RegisterExecutor类)同步到schedulerback band,然后schedulerback band可以根据这些GPU信息为那些需要GPU资源的任务分配资源。

00-1010的第一阶段将支持独立,纱和库本内特GPU。Spark需要在这三种资源管理上做一些工作。

2、Resource Manager

Standalone是Spark内置的资源管理模式,但目前的Standalone部署模式无法支持GPU等资源。为了识别GPU信息,一种可行的方法是在配置文件中配置GPU资源。通过读取配置信息,工作者维护内存结构中的可用资源,如图形处理器和中央处理器。同时,执行器所应用的资源(包括GPU)是通过allocateworkerresourcetoxecutors方法在主机上分配的。

00-1010为了在YARN上支持GPU,我们需要使用YARN 3 . 1 . 2版本;同时,我们需要对纱簇进行相关配置,使纱簇能够开始支持GPU资源。请看这里如何配置纱上的GPU资源。

为执行器申请纱容器时,Spark需要将执行器所需的GPU数量映射到纱容器请求中的yarn.io/gpu资源。纱有GPU隔离机制,所以无论是否使用Docker容器,未分配给纱容器的GPU资源的使用都会被阻塞。

需要注意的是,到目前为止,纱只支持Nvidia GPU。

00-1010从Kubernetes 1.8版本开始,Kubernetes采用设备插件模型,支持GPU、高性能NIC、FPGA等设备。Kubernetes目前支持英伟达、AMD和英特尔GPU设备。在独立模式或纱模式下,指定火花k8s中任务的图形处理器数量。它还支持spark . task . GPU和spark . executor . GPU的全局配置,并且还支持RDD阶段每个任务的设置。

这里将分享对Spark 3.0中内置GPU调度支持的示例分析。希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/148959.html

(0)

相关推荐

  • "docker build" requires exactly 1 argument(s).报错的解决方法

    技术"docker build" requires exactly 1 argument(s).报错的解决方法"docker build" requires exactly 1 argument(s).报错的解决方法,很

    攻略 2021年11月12日
  • 怎么部署MySQL Group Replication

    技术怎么部署MySQL Group Replication这篇文章主要介绍“怎么部署MySQL Group Replication”,在日常操作中,相信很多人在怎么部署MySQL Group Replication问题上

    攻略 2021年11月18日
  • win10系统升级,电脑怎么升级系统win10

    技术win10系统升级,电脑怎么升级系统win10在电脑设置—检查更新里面升级。1win10系统升级、在Win10系统桌面,点击桌面左下角“开始菜单”按钮,打开开始菜单页面。2、在打开的开始菜单页面中,点击页面中的“设置

    生活 2021年10月24日
  • 网页图片,网页图片多少KB最适合

    技术网页图片,网页图片多少KB最适合网页图片10kb-50kb最适合网页图片。网页一般分两种,如果是网页源文件的话那就得看网页内容和程序的复杂,网页源文件因为都是代码,所以一般也就1KB左右。还有就是说被执行过的网页,也

    生活 2021年10月26日
  • PostgreSQL中PageAddItemExtended函数的逻辑是什么

    技术PostgreSQL中PageAddItemExtended函数的逻辑是什么本篇内容主要讲解“PostgreSQL中PageAddItemExtended函数的逻辑是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作

    攻略 2021年11月11日
  • java方法引用有什么用(java引用方式有哪些)

    技术Java中引用方法有哪些这篇文章主要介绍“Java中引用方法有哪些”,在日常操作中,相信很多人在Java中引用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中引用方法

    攻略 2021年12月23日