最佳实践:集群配置

砖时提供了许多选项来帮助你创建和配置集群以最低的成本获得最佳性能。然而,这种灵活性可以创建挑战当你试图确定最优配置为您的工作负载。仔细考虑用户如何将利用集群将帮助指导配置选项当您创建新集群或配置现有的集群。时需要考虑的一些事情确定配置选项:

  • 什么类型的用户将使用集群?数据科学家可能运行不同的工作类型,不同的需求数据工程师或数据分析师。

  • 什么类型的工作负载将用户在集群上运行?例如,批量提取、转换和加载(ETL)工作比分析工作负载可能会有不同的要求。

  • 什么级别的服务水平协议(SLA)你需要见面?

  • 你有预算限制什么?

本文提供了集群配置的建议基于这些考虑不同的场景。本文还讨论了砖集群的特定功能和注意事项要记住那些特性。

您的配置决策需要成本和性能之间的权衡。一个集群的主要成本包括砖单位(DBUs)消耗的集群和底层资源的成本需要集群运行。可能没有什么明显的二次成本如不满足SLA的业务成本,减少员工的效率,或可能浪费资源,因为可怜的控制。

集群功能

在讨论更详细的集群配置场景之前,重要的是要理解一些砖集群的特点和如何最好地使用这些功能。

通用的集群和集群的工作

当你创建一个集群你选择一个集群类型:通用集群或集群的工作。通用集群可以由多个用户共享,最好进行特别分析,数据勘探或开发。一旦你完成了实现加工和准备实施代码,切换到运行在集群的工作上。集群工作终止你的工作结束时,减少资源使用和成本。

集群模式

请注意

本文描述了传统集群UI。信息关于新集群的UI(预览),看到的创建一个集群。这包括一些术语集群访问类型和模式的变化。比较新和遗留的集群类型,明白了集群UI变化和集群访问模式。在预览界面:

  • 标准模式集群现在被称为任何隔离共享访问模式集群

  • 高并发性和表acl现在被称为共享访问模式集群

砖支持三种集群模式:标准、高并发性和单节点。大多数普通用户使用标准或单一节点集群。

警告

标准模式集群(有时称为任何隔离共享集群)可以由多个用户共享,与用户之间没有隔离。如果你使用High Concurrency集群模式没有额外的安全设置如表acl或凭据透传,使用了相同的设置标准模式集群。账户管理员可以防止内部凭证自动生成砖工作空间的管理员在这些类型的集群。为更安全的选择,砖建议替代的高并发性等集群表acl。

  • 标准集群只推荐给用户。标准Python开发的集群可以运行工作负载,SQL, R, Scala。

  • 单节点集群仅用于工作,少量的数据或运作的工作负载,如单节点机器学习库。

  • 高并发性集群非常适合用户组需要共享资源或临时工作运行。管理员通常创建高并发性集群。砖建议启用自动定量的高并发性集群。

按需和现货实例

亚马逊网络服务有两个层次的EC2实例:按需和现货。随需应变的情况下,你支付第二个没有计算能力的长期承诺。现货实例允许您使用备用Amazon EC2计算能力和选择你愿意支付的最高价格。现货价格的变化实时基于AWS计算能力的供给和需求。如果当前现货市场价格高于马克斯现货价格,现货实例终止。因为现货实例通常可用的打折相比,按需定价可以显著降低运行您的应用程序的成本,增加应用程序的计算能力,提高吞吐量。

砖支持创建集群使用的按需定制的现货价格和现货实例,允许您调整您的集群根据你的用例。例如,这张图片展示了一个指定驱动程序的配置节点和四个工人节点应该发起点播实例和剩下的四名工人应该推出现货情况最大的现货价格是随需应变的100%价格。

按需配置和现场实例
马克斯现货价格

砖建议启动集群,这样引发的司机是一个随需应变的实例,它允许保存集群的状态即使失去现货实例节点。如果您选择使用所有现货实例包括司机,任何缓存的数据或删除表如果你失去了司机实例由于现货市场的变化。

另一个重要的背景是现货跌回随需应变。如果您正在运行一个混合集群(也就是说,按需和现货实例),如果现货实例收购失败或失去现货情况下,砖落回到使用随需应变的实例,为您提供所需的能力。没有这个选项,你将失去现货实例集群提供的能力,导致延误或者失败你的工作量。砖建议设置点播和现货实例的混合集群基于临界工作,宽容延误和失败由于损失的情况下,为每个类型的用例和成本的敏感性。

提示

您可以使用亚马逊现货实例顾问确定一个合适的价格为您的实例类型和地区。

自动定量

请注意

计算伸缩扩展限制了集群大小结构化流工作负载。砖建议使用三角洲表与增强的自动定量直播工作负载。看到砖增强自动定量

自动定量允许根据工作负载集群自动调整。自动定量可以受益许多用例和场景从成本和性能的角度来看,但是是很有挑战性的,明白何时以及如何使用自动定量。下面是一些注意事项决定是否使用自动定量和如何获得最大的好处:

  • 自动定量通常是一个固定大小的集群相比,降低了成本。

  • 自动定量工作负载集群可以运行得更快而under-provisioned固定大小。

  • 一些工作负载不兼容自动定量集群,包括spark-submit工作和一些Python包。

  • 与单用户通用集群,用户可能会发现自动定量时减慢他们的开发或分析最小数量的工人设置过低。这是因为他们运行的命令或查询通常是几分钟,时间集群是闲置,可能减少以节省成本。执行下一个命令时,集群管理器将尝试扩大,几分钟,从云提供商检索实例。在此期间,乔布斯可能运行与资源不足,减缓时间检索结果。虽然增加了最小数量的工人帮助,但也会增加成本。这是另一个例子,成本和性能需要平衡。

  • 如果三角洲缓存正在使用,重要的是要记住,任何缓存的数据节点丢失如果节点是终止。如果保留缓存数据是很重要的对于你的工作量,考虑使用一个固定大小的集群。

  • 如果你有一个集群运行ETL工作负载,工作时有时集群大小适当调整如果你知道你的工作不太可能改变。然而,自动定量给你如果你的数据大小增加灵活性。同样值得注意的是优化的自动定量可以减少费用和长时间运行的工作如果有长时间充分利用集群时从另一个进程或等待结果。再一次,你的工作可能会经历轻微延误集群试图适当扩大。如果你有严格sla找工作,一个固定大小的集群可能是一个更好的选择或考虑使用砖减少集群开始时间。

砖还支持自动定量本地存储。自动定量本地存储,数据砖监视器上可用的空闲磁盘空间集群的火花的工人。如果一个工人开始在磁盘上运行低,砖自动高度管理一个新的卷工人之前耗尽磁盘空间。

创建一个池减少集群启动和扩大时间通过维护一组可用的,现成的实例。砖建议利用池以提高处理时间的同时最小化成本。

砖运行时版本

砖建议使用最新的砖的运行时版本的通用集群。使用最新的版本将确保你有最新的优化和最新的代码之间的兼容性和预紧包。

连续工作的集群运行工作负载,可以考虑使用长期支持(LTS)砖运行时版本。使用LTS版将确保你不遇到兼容性问题,可以彻底地测试工作负载在升级之前。如果你有一个先进的用例在机器学习,考虑专业砖运行时版本。

集群政策

集群政策允许管理员执行控制集群的创建和配置。砖推荐使用的集群政策,帮助应用本指南中讨论的建议。BOB低频彩了解更多关于集群政策集群政策的最佳实践指南

自动终止

很多用户不会认为终止他们的集群完成时使用它们。幸运的是,集群自动终止后一组,默认为120分钟。

管理员可以改变这种默认设置在创建集群政策。减少这个设置可以降低成本减少集群处于空闲状态的时间。重要的是要记住,当一个集群终止所有状态丢失,包括所有变量、临时表、缓存、函数、对象,等等。所有这些国家需要恢复当集群重新开始。如果开发步骤30分钟的午休时间,它将浪费花同样多的时间去一个笔记本回到相同的状态。

重要的

闲置集群持续积累DBU和云实例指控不活动期间在终止之前。

垃圾收集

虽然它可能不太明显比本文中讨论的其他因素,注意垃圾收集可以帮助优化工作性能集群。提供大量的RAM可以帮助工作更有效地执行垃圾收集期间但也会导致延迟。

长扫垃圾收集的影响降到最低,避免与大量的RAM部署集群配置为每个实例。有更多的RAM分配给执行器将导致更长的垃圾收集时间。相反,配置实例内存较小的尺寸,如果你需要更多的内存和部署多个实例为你工作。然而,有更少的节点与更多的RAM推荐的情况下,例如,需要很多打乱的工作负载,如前所述集群规模的考虑

集群访问控制

您可以配置两种类型的集群的权限:

  • 允许创建集群权限控制用户创建集群的能力。

  • 集群级别的权限控制的能力使用和修改一个特定的集群。

更多地BOB低频彩了解集群配置权限,明白了集群访问控制

您可以创建一个集群,如果你有集群创建权限或访问集群政策,允许你创建任何集群在政策的规范。集群是所有者和创造者可以管理权限,这将使他们与其他用户分享在集群的数据访问权限的限制。

了解集群权限和集群政策是重要的在决定集群配置常见的场景

集群的标签

集群的标签让你轻松监控云资源的成本由不同群体在你的组织使用。您可以指定标签为键值字符串创建一个集群时,和砖这些标签适用于云计算的资源,如实例和EBS卷。BOB低频彩了解更多关于标签执行在集群政策的最佳实践指南。

集群规模的考虑

砖一个人均执行器节点运行。因此执行者和工人是交替使用的砖结构。人们常把集群规模的工人的数量,但也有其他重要的因素需要考虑:

  • 总执行人核心(计算):在所有执行者核心的总数。这决定了集群的最大并行度。

  • 总执行人内存:内存的总量在所有执行者。这决定了多少数据可以存储在内存溢出到磁盘之前。

  • 遗嘱执行人本地存储:本地磁盘存储的类型和数量。本地磁盘中主要是用于泄漏的情况下震荡和缓存。

其他因素包括职工实例类型和大小,上面也影响因素。分级集群时,考虑:

  • 数据将工作负载消耗多少?

  • 你的工作负载的计算复杂度是什么?

  • 你读取数据从哪儿来的?

  • 外部存储器中的数据分区吗?

  • 你需要多少并行?

回答这些问题将帮助您确定最优基于工作负载集群配置。只有简单的ETL风格的工作负载,使用窄转换(转换每个输入分区只会导致一个输出分区),专注于一个compute-optimized配置。如果你期望很多打乱,内存是很重要的,以及存储占数据泄漏。减少大量实例可以减少机器之间传输数据时网络I / O在shuffle-heavy工作负载。

之间有一个平衡的数量大小的工人和工人实例类型。集群有两个工人,每个核心40和100 GB的RAM,有相同的集群计算和内存为8个工人10核和25 GB的RAM。

如果你期望许多重新读取相同的数据,那么你的工作负载可能受益于缓存。考虑一个存储优化配置与δ缓存。

集群规模的例子

下面的例子展示基于特定类型的工作负载集群的建议。这些例子还包括配置,以避免和为什么这些配置不适合工作负载类型。

数据分析

数据分析师通常执行处理需要来自多个分区的数据,导致很多洗牌操作。用更小的数字集群的节点可以减少所需的网络和磁盘I / O执行这些打乱。集群在以下图可能是最好的选择,特别是对于集群支持一个分析师。

集群D以来最严重的性能可能会提供更大的节点数量更少的内存和存储需要更多的洗牌的数据完成处理。

数据分析集群大小

分析工作负载可能需要反复阅读相同的数据,所以推荐工人类型存储优化三角洲启用缓存。

建议分析工作负载的其他功能包括:

  • 启用自动终止,以确保集群经过一段时间的不活动终止。

  • 考虑启用自动定量根据分析师的典型的工作负载。

  • 考虑使用池,这将允许限制集群预先核准的实例类型,确保一致的集群配置。

功能可能不是有用:

  • 存储自动定量,因为这个用户可能不会产生大量的数据。

  • 高并发的集群,因为这对单个用户集群,集群和高并发性最适合共享使用。

基本批ETL

简单的批ETL作业,不需要广泛的转换,如连接或聚合,通常受益于compute-optimized集群。对于这些类型的工作负载,任何集群在下图可能是可以接受的。

基本批ETL集群规模

Compute-optimized工人类型推荐;这些会便宜一些,这些工作负载可能会不需要大量内存或者存储。

使用池可能会提供一个有利于集群支持简单的ETL作业减少集群启动时间和减少总管道运行时在运行工作。然而,由于这些类型的工作负载通常如期运行工作的集群只运行足够长的时间完成工作,使用池可能不提供好处。

可能不是有用有以下特点:

  • 三角洲缓存,因为重读数据出乎意料的时候。

  • 自动终止可能不是必需的,因为这些可能会安排工作。

  • 自动定量不推荐,因为计算和存储应预先配置的用例。

  • 高并发性集群仅供多个用户和不利益集群运行一个工作。

复杂的批ETL

更复杂的ETL作业,如处理,要求工会和跨多个表连接,可能工作最好当你可以打乱的数据量最小化。因为减少工人在集群将有助于最小化打乱,你应该考虑一个更小的集群和集群在下图更大的集群和集群D。

复杂的ETL集群大小

复杂的转换可以计算密集型,因此对于某些工作负载达到一个最优的内核数可能需要额外的节点添加到集群中。

喜欢简单的ETL作业compute-optimized工人类型推荐;这些会便宜一些,这些工作负载可能会不需要大量内存或者存储。也喜欢简单ETL作业,主要考虑集群特性是池减少集群启动时间和减少总管道运行时在运行工作。

可能不是有用有以下特点:

  • 三角洲缓存,因为重读数据出乎意料的时候。

  • 自动终止可能不是必需的,因为这些可能会安排工作。

  • 自动定量不推荐,因为计算和存储应预先配置的用例。

  • 高并发性集群仅供多个用户和不利益集群运行一个工作。

培训机器学习模型

由于初始迭代训练机器学习模型往往实验,小集群如集群是一个不错的选择。更小的集群也将减少震荡的影响。

如果稳定性问题,或者对于更高级的阶段,一个更大的集群,如集群B或C可能是一个不错的选择。

不推荐等大型集群的集群D节点之间移动数据的开销。

机器学习集群大小

建议工人类型存储优化三角洲缓存启用占重复读取相同的数据和训练数据启用高速缓存。如果计算和存储选项提供的存储优化节点是不够的,考虑GPU优化节点。一个可能的缺点是缺乏三角洲与这些节点缓存支持。

建议分析工作负载的其他功能包括:

  • 启用自动终止,以确保集群经过一段时间的不活动终止。

  • 考虑启用自动定量根据分析师的典型的工作负载。

  • 使用池,这将允许限制集群预先核准的实例类型,确保一致的集群配置。

功能可能不是有用:

  • 自动定量,因为缓存的数据可能会丢失当节点作为集群中移除尺度。此外,典型的机器学习工作往往会消耗所有可用的节点,在这种情况下,自动定量将提供任何好处。

  • 存储自动定量,因为这个用户可能不会产生大量的数据。

  • 高并发的集群,因为这对单个用户集群,集群和高并发性最适合共享使用。

常见的场景

以下部分提供额外的建议为常见的集群配置集群使用模式:

  • 多个用户运行数据分析和特殊处理。

  • 专门的用例和机器学习。

  • 支持批处理作业。

多用户群

场景

您需要提供多个用户访问数据运行数据分析和特别查询。集群使用可能会随着时间变化而波动,大多数工作不是很资源密集型的。大多数用户需要只读访问数据和要执行的分析或通过一个简单的用户界面创建仪表板。

集群配置的推荐方法是集群中的节点配置的混合方法以及自动定量。混合方法涉及定义随需应变的实例的数量和现货实例集群和启用自动定量之间的最小和最大数量的实例。

多用户场景

这个集群总是可用的和共享的默认用户属于一个组。启用自动定量上下允许集群规模取决于负载。

用户没有访问集群启动/停止,但最初的随需应变的实例是立即回应用户查询。如果用户查询需要更多容量,自动定量自动规定更多的节点(主要是现货实例),以适应工作负载。

砖有其他的特性来进一步提高多租户的用例:

这种方法使总成本下降:

  • 使用共享的集群模型。

  • 使用按需和现货实例。

  • 使用自动定量来避免支付充分利用集群。

专门的工作负载

场景

您需要提供集群为专门的用例或团队在您的组织,例如,数据科学家运行复杂的数据探索和机器学习算法。一个典型的集群模式,用户需要在短时间内运行他们的分析。

这种工作负载的最佳方法是创建集群政策与预定义的默认配置,固定的,和设置范围。这些设置可能包括实例的数量、实例类型,位置和随需应变的情况下,角色,图书馆要安装,等等。使用集群政策允许用户提供更高级的需求快速自旋向上的集群,他们可以根据需要配置为用例和实施成本和符合政策。

专门的工作负载

这种方法为用户提供了更多的控制,同时保持控制成本的能力,根据集群配置。这也允许您配置集群为不同的用户组和权限访问不同的数据集。

这种方法的一个缺点是,用户必须使用管理员的任何更改集群,如配置,安装库,等等。

批处理工作负载

场景

你需要提供集群计划批处理作业,如生产ETL作业执行数据准备。建议的最佳实践是推出一个新的集群为每个任务运行。新的集群上运行每个工作有助于避免失败和错失的sla引起的其他工作负载运行在一个共享的集群。根据临界水平的工作,您可以使用随需应变的实例来满足sla或节省成本的现货和随需应变的实例之间的平衡。

将批处理工作负载