配置集群
请注意
这些是遗留的创建集群UI的指令,只是为了历史的准确性。所有客户都应该使用更新的创建集群界面.
请注意
CLI特性在谷歌Cloud的Databricks上是不可用的。
本文解释了在创建和编辑Databricks集群时可用的配置选项。重点介绍了如何使用UI创建和编辑集群。其他方法请参见集群CLI,集群API 2.0,Databricks Terraform提供商.
有关帮助,请参见确定哪种配置选项组合最适合您的需求集群配置最佳实践.
集群政策
一个集群政策限制基于一组规则配置集群的能力。策略规则限制用于创建集群的属性或属性值。集群策略具有acl,这些acl将其限制为特定用户和组的使用,从而限制了在创建集群时可以选择的策略。
中选择集群策略,配置集群策略政策下拉。
请注意
如果没有政策在工作区中创建,政策下拉菜单不显示。
如果你有:
集群创建权限,您可以选择不受限制的策略并创建完全可配置的集群。的不受限制的策略不限制任何集群属性或属性值。
同时创建集群权限和访问集群策略,可以选择不受限制的策略和您可以访问的策略。
仅访问集群策略,您可以选择具有访问权限的策略。
集群模式
Databricks支持三种集群模式:标准、高并发和单独的节点.默认集群模式为“Standard”。
重要的
创建集群后,不允许修改集群模式。如果需要不同的集群模式,则必须创建一个新集群。
集群配置包括自动终止设置的默认值取决于集群模式:
标准节点和单节点集群默认120分钟后自动终止。
高并发集群不默认情况下自动终止。
标准的集群
警告
标准模式集群(有时称为无隔离共享集群)可以由多个用户共享,用户之间没有隔离。如果使用“高并发”集群模式没有表acl,与标准模式集群使用相同的设置。帐户管理员可以防止为Databricks工作空间管理员自动生成内部凭证在这些类型的集群上。对于更安全的选项,Databricks建议使用具有表acl的高并发集群。
建议单个用户使用标准集群。标准集群可以运行用Python、SQL、R和Scala开发的工作负载。
高并发集群
高并发集群是受管的云资源。High Concurrency集群的主要好处是它们提供了细粒度的共享,以实现最大的资源利用率和最小的查询延迟。
高并发集群可以运行用SQL、Python和r开发的工作负载。高并发集群的性能和安全性是通过在单独的进程中运行用户代码来提供的,这在Scala中是不可能的。
此外,只有High Concurrency集群支持表访问控制.
若要创建高并发集群,请设置集群模式来高并发.
单节点集群
Single Node集群没有worker,在驱动节点上运行Spark作业。
相比之下,标准集群需要至少一个Spark工作节点除驱动节点外,还用于执行Spark作业。
如果需要创建单节点集群,请设置集群模式来单独的节点.
有关使BOB低频彩用单节点集群的详细信息,请参见单节点集群.
池
为了减少集群启动时间,您可以将集群附加到预定义的集群池空闲实例的。集群是使用池中的实例创建的。如果一个池没有足够的空闲资源来创建请求的驱动程序或工作者,则池通过从实例提供程序分配新实例来扩展。当附加的集群终止时,它使用的实例将返回到池中,并可由不同的集群重用。
看到池以了解BOB低频彩有关在Databricks中使用池的更多信息。
砖运行时
数据库运行时是运行在您的数据库上的核心组件的集合集群.所有Databricks运行时都包含Apache Spark,并添加组件和更新,以提高可用性、性能和安全性。详细信息请参见砖运行时.
Databricks提供了几种运行时类型和这些运行时类型的几种版本Databricks运行时版本下拉菜单,可以创建或编辑集群。
光子加速
光子对正在运行的集群可用吗Databricks Runtime 9.1 LTS及以上。
要启用光子加速,请选择使用光子加速复选框。
如果需要,可以在Worker type和Driver type下拉菜单中指定实例类型。
中查看Photon活动火花UI.下面的截图显示了查询细节DAG。在DAG中有两个光子的迹象。首先,Photon操作符以“Photon”开头,例如,PhotonGroupingAgg
.其次,在DAG中,Photon操作符和阶段是桃红色的,而非Photon操作符和阶段是蓝色的。
集群节点类型
集群由一个驱动节点和零个或多个工作节点组成。
您可以为驱动程序和工作节点选择单独的云提供程序实例类型,尽管默认情况下驱动程序节点使用与工作节点相同的实例类型。不同的实例类型适用于不同的用例,例如内存密集型或计算密集型工作负载。
司机节点
驱动程序节点维护连接到集群的所有笔记本的状态信息。驱动节点还维护SparkContext并解释您从集群上的笔记本或库中运行的所有命令,并运行与Spark执行器协调的Apache Spark master。
驱动节点类型默认值与工作节点类型相同。如果您打算这样做,可以选择具有更多内存的较大驱动程序节点类型收集()
收集Spark员工的大量数据,并在笔记本上进行分析。
提示
由于驱动程序节点维护所附笔记本的所有状态信息,请确保从驱动程序节点分离未使用的笔记本。
工作者节点
Databricks工作节点运行Spark执行器和集群正常运行所需的其他服务。当您使用Spark分布工作负载时,所有的分布式处理都发生在工作节点上。Databricks为每个工作节点运行一个执行程序;因此这些项遗嘱执行人而且工人在Databricks体系结构上下文中可互换使用。
提示
要运行Spark作业,至少需要一个工作节点。如果集群中没有工人,可以在驱动节点上运行非Spark命令,但Spark命令会失败。
GPU实例类型
对于需要高性能的计算挑战任务,例如与深度学习相关的任务,Databricks支持使用图形处理单元(gpu)加速的集群。有关更多信息,请参见GPU-enabled集群.
具有本地ssd的集群实例类型
有关实例类型的最新列表、每种类型的价格以及本地ssd的大小,请参见GCP定价估计器.
具有本地ssd的实例类型使用默认的谷歌云服务器端加密进行加密。
具有本地ssd的实例类型自动使用磁盘缓存为了提高性能。所有实例类型上的缓存大小都是自动设置的,因此不需要显式地设置磁盘使用情况。
集群大小和自动缩放
创建Databricks集群时,可以为集群提供固定数量的工作人员,也可以为集群提供最小和最大数量的工作人员。
当您提供一个固定大小的集群时,Databricks确保您的集群具有指定数量的工人。当您为工作人员的数量提供一个范围时,Databricks将选择运行作业所需的适当数量的工作人员。这被称为自动定量.
随着自动伸缩,Databricks动态地重新分配工人,以说明你的工作的特点。管道的某些部分可能比其他部分更需要计算,Databricks会在工作的这些阶段自动添加额外的工作人员(并在不再需要时删除他们)。
自动伸缩可以更容易地实现高集群利用率,因为您不需要配置集群来匹配工作负载。这尤其适用于需求随时间变化的工作负载(比如在一天中探索一个数据集),但它也适用于一次性的较短工作负载,其配置需求未知。自动缩放提供了两个优势:
与固定大小的未配置的集群相比,工作负载可以更快地运行。
与静态大小的集群相比,自动伸缩集群可以降低总体成本。
根据集群和工作负载的恒定大小,自动伸缩可以同时为您提供其中一种或两种好处。当云提供商终止实例时,集群大小可以低于所选择的最小工作数。在这种情况下,Databricks会不断尝试重新提供实例,以保持最少的工作人员数量。
请注意
无法使用自动缩放功能spark-submit
就业机会。
自动缩放的行为
在2步内从最小到最大。
即使集群没有空闲,也可以通过查看shuffle文件状态来缩小规模。
根据当前节点的百分比递减。
在作业集群上,如果集群在过去40秒内未得到充分利用,则减少。
在通用集群上,如果集群在过去150秒内未得到充分利用,则会减小。
的
spark.databricks.aggressiveWindowDownS
Spark配置属性以秒为单位指定集群做出降级决策的频率。增大该值会导致集群缩小的速度变慢。最大值为600。
谷歌云配置
在配置集群的谷歌云实例时,可以指定谷歌云特定的选项。
使用可抢占实例
一个可抢占的虚拟机实例是一个可以以比普通实例低得多的价格创建和运行的实例。但是,如果谷歌Cloud需要为其他任务访问这些资源,则可能会停止(抢占)这些实例。可抢占实例使用多余的谷歌计算引擎容量,因此它们的可用性随使用情况而变化。
创建新集群时,可以通过以下两种方式启用可抢占虚拟机实例:
通过该界面创建集群时,可以单击抢占式实例旁边是工作类型细节。
在使用UI创建实例池时,可以设置随需应变/抢占式来所有的抢占式,可与备用GCP抢占,或按需GCP.如果可抢占的虚拟机实例不可用,默认情况下集群将退回到按需使用虚拟机实例。若要配置回退行为,请设置
gcp_attributes.gcp_availability
来PREEMPTIBLE_GCP
或PREEMPTIBLE_WITH_FALLBACK_GCP
.默认为ON_DEMAND_GCP
.
{“instance_pool_name”:“可抢占的w/o备用API测试”,“node_type_id”:“n1-highmem-4”,“gcp_attributes”:{“gcp_availability”:“PREEMPTIBLE_GCP”}}
接下来,创建一个新的集群并设置池到一个可抢占的实例池。
本地磁盘加密
具有本地ssd的实例类型使用默认的谷歌云服务器端加密进行加密。看到具有本地ssd的集群实例类型.
从secret中检索Spark配置属性
Databricks建议将密码等敏感信息存储在数据库中秘密而不是明文。要在Spark配置中引用一个秘密,请使用以下语法:
火花。<属性名>{{秘密/ < scope-name > / <秘密名字>}}
例如,设置Spark配置属性为密码
对储存在里面的秘密的价值秘密/ acme_app /密码
:
火花。密码{{秘密/ acme-app /密码}}
有关更多信息,请参见在Spark配置属性或环境变量中引用秘密的语法.
环境变量
您可以配置可以从中访问的自定义环境变量init脚本在集群上运行。Databricks还提供预定义的环境变量你可以在初始化脚本中使用。不能重写这些预定义的环境变量。
2 .在集群配置界面,单击高级选项切换。
单击火花选项卡。
中设置环境变量环境变量字段。
集群的标签
集群标记允许您轻松监控组织中各个组使用的云资源的成本。在创建集群时,可以将标记指定为键值对,Databricks将这些标记应用到GKE集群上的Databricks Runtime pod和持久卷,并在Databricks中使用DBU使用报告.
的砖计费使用图表在帐户控制台中可以按单个标记聚合使用情况。从同一页面下载的计费使用CSV报告还包括默认标记和自定义标记。标签也传播到GKE和GCE标签.
有关池和群集标记类型如何协同工作的详细信息,请参见使用集群和池标记监视使用情况.
为了方便起见,Databricks为每个集群应用了四个默认标记:供应商
,创造者
,ClusterName
,ClusterId
.
此外,在作业集群上,Databricks应用了两个默认标记:RunName
而且JobId
.
警告
不分配自定义标签与键的名字
到集群。每个集群都有一个标记的名字
由Databricks设置。如果您更改与键相关联的值的名字
,该集群将不再被Databricks跟踪。因此,集群在空闲后可能不会被终止,并且将继续产生使用成本。
您可以在创建集群时添加自定义标记。配置集群标签。
2 .在集群配置界面,单击高级选项切换。
在页面底部,单击标签选项卡。
为每个自定义标记添加一个键值对。您最多可以添加54个自定义标记。
详情请参见使用集群和池标记监视使用情况.
集群日志传递
在创建集群时,可以指定Spark driver节点、worker节点和事件的日志传递位置。日志每5分钟发送一次到您选择的目的地。当一个集群被终止时,Databricks保证交付在集群被终止之前生成的所有日志。
日志的目的地取决于集群ID。如果指定的目标为dbfs: / cluster-log-delivery
,集群日志0630 - 191345 leap375
送货至dbfs: / cluster-log-delivery / 0630 - 191345 leap375
.
设置日志传递位置。
2 .在集群配置界面,单击高级选项切换。
单击日志记录选项卡。
选择目标类型。
输入集群日志路径。
日志路径必须是DBFS路径,以
dbfs: /
.
请注意
REST API中也提供了该特性。看到集群API 2.0.
Init脚本
集群节点初始化脚本(或初始化脚本)是在每个集群节点启动期间运行的shell脚本之前启动Spark驱动程序或worker JVM。可以使用init脚本安装Databricks运行时未包含的包和库、修改JVM系统类路径、设置JVM使用的系统属性和环境变量、修改Spark配置参数等配置任务。
控件可以将初始化脚本附加到集群高级选项部分,并单击Init脚本选项卡。
有关详细说明,请参见集群节点初始化脚本.