Databricks 集群

2025年1月30日 | 16 分钟阅读

随着大数据的兴起,数据处理工具的水平也随之提高。Apache Spark 团队的成员汇聚到 Databricks,创建了一个广受欢迎的重要数据处理和数据工程平台。借助 Databricks,数据质量和重要洞察发现不再是艰巨的工作,从而实现明智的决策。

Databricks 集群是计算资源和配置的统一集合,旨在促进跨各种领域的数据处理。这些集群简化了收集和自定义数据源以及数据处理操作设置的过程。通过整合计算资源和配置,Databricks 集群有效地支持数据工程、数据科学和数据分析任务。例如,它们能够使用聚类算法进行无监督学习,通过 ETL 管道进行数据处理,以及适用于流式数据和分析查询的机器学习解决方案。本节将更详细地探讨 Databricks 集群的功能。

什么是 Databricks 集群?

Databricks 集群意味着将计算节点的混合体汇集在一起,其中包含必要的配置,以确保正确的作业和节点执行。流式分析、ETL 管道、机器学习和即席分析等作业都可以在 Databricks 集群中实现。

这些职责通过不同的方法执行——无论是用户通过笔记本中的命令还是通过自动化过程。Databricks 集群主要有两种形式

通用集群: 这些集群是方便的选项卡,允许用户在数据分析中协作。它们可以在 CLI、UI 或 REST API 级别进行设置。用户可以灵活地强制终止通用集群并重新启动它们。此外,它们支持会议协作,用户可以在其中协调交互式任务。

作业集群: 这些 Pod 旨在高效地在高度自动化的环境中运行,执行需要很少时间且没有错误的任务。它们依赖于部署它们的云提供商来运行作业,并在作业空间解散后立即终止。与通用集群不同,作业集群在终止后仍然存在。

数据集群的类型

分析师可能会问的另一个问题是:“Databricks 提供哪些类型的数据集群?”

Azure Databricks 支持三种类型的集群:对于基本工作负载处理,提供标准、高并发和单节点集群,其中标准模式是默认模式。

(i) 标准集群

普通集群适用于个人项目。例如,它们可以处理用 Python、SQL、R 和 Scala 编写的数据集。

(ii) 高并发集群

为云平台设计并由用户共享的云资源称为高并发集群。它们提供高分辨率资源共享,以确定最有效的资源探索并减少查询响应中的延迟。SQL、Python 和 R 列表是此时可以在这些集群上运行的云工作负载。另一方面,与 Scala 相比,在该模式下不可用,使用单独的进程来实现用户代码可最大限度地提高高并发性能并提供重要的安全保证。表访问控制选项仅在高并发集群上提供,用于密集型应用程序。将集群协议设置为高并发并通过调用 new BigAgreementCluster() 启动新集群。

(iii) 单节点集群

在单节点集群的情况下,Spark 作业在驱动程序上计算,因为设置中不存在工作节点。集群最常见的用例是用于开发和测试目的。

要启动单节点集群的设置,您只需选择集群模式单节点。

什么是集群节点类型?

一个组将一个或多个驱动程序节点和零个或多个用户节点组合在一起。

与通常使用云提供商提供的相同实例类型但可以使用不同类型的驱动程序和工作节点不同,它们遵循严格的选择准则并回退到相同的实例。在这种情况下,有几种机器类型符合各种作业的需求,例如内存密集型和计算密集型任务。

(i) 驱动程序节点

驱动程序节点是负责整个集群中笔记本管理器的集中实例。换句话说,它管理 Apache Spark master,后者与 Spark executor 协作并维护 SparkContext。

通常,驱动程序节点类型与工作节点类型相同。然而,如果您期望拉取大量日志数据,则规划与工作节点大小相同的驱动程序节点类型将是有益的,因为这将允许增加处理数据所需的处理能力。

(ii) 工作节点

Databricks 节点/计算成为工作节点。这些工作节点又执行 Spark executor 以及对集群操作至关重要的其他辅助服务。在管理 Spark 程序工作的上下文中,所有计算都在工作节点上执行。通过根据 Databricks 架构为每个工作节点分配一个 executor,executor 通常与工作节点同义。

(iii) GPU 实例类型

Databricks 提供了一个称为 GPU 加速集群的选项,这是一个附加组件,主要用于处理需要高度专业化的复杂计算。这些程序通常依赖于深度学习,并且一旦 GPU 启用此类任务所需的高吞吐量计算,它们就会表现出色。

什么是集群大小和自动扩缩?

集群大小和自动扩缩使 Databricks 的数学资源处理变得简单高效。

在形成 Databricks 集群时,用户可以选择设置静态数量的工作节点或指定工作节点数量的范围(包括最低值和最高值)。

Databricks 集群提供固定和目标形状。在固定形状集群上,Databricks 始终保持指定的工作节点数量。另一方面,通过为工作节点数量设置范围,Databricks 会根据作业要求自动动态调整工作节点数量。

使用自动扩缩进行工作节点调配使 Databricks 能够在作业使用频繁时提供更多工作节点,而在需求下降时提供更少工作节点。与传统计算系统静态地利用资源进行连续一段时间不同,在云计算中,资源会动态重新分配以满足随时间波动的工作负载需求。

  • 自动扩缩的好处包括
    与传统固定大小的作业集群不同,传统集群会使预配的内存超载,导致作业执行延迟,而当前系统提高了计算速度,并且每个作业都能快速执行。
    与静态大小的集群相比,可以节省成本,因为只有在需要时才使用资源。
    如果最少的工作节点减去一个被终止,自动扩缩可能会导致集群大小降至阈值以下。在这种情况下,Databricks 过程是按照为集群指定的最小工作节点数重新配置实例;某些实例可能会按需重新配置或稍后关闭,具体取决于日历或 Amazon 服务器供应时间等。

自动扩缩的类型

自动扩缩主要有两种类型:基于预定义操作和优化,由 Databricks 提供文档。我们即将发布的博客文章将重点介绍其中一种技术——自动扩缩,它可能帮助您更深入地了解此方法的广泛前景。

优化的自动扩缩旨在为作业集群自动化提供最佳选择。另一方面,通用集群背后的科学决定了所应用的自动扩缩类型,具体取决于工作区配置。

对于高级版,所有在“集群”中运行的内容都可以从提供商的自动扩缩中受益。对于在 2020 年 3 月 31 日之前订阅或使用操作安全包的 Databricks 最终用户或访客,同样适用。相反的策略也将应用于标准计划,即标准自动扩缩将为所有标准通用集群启用。

以下是两种类型的区别

(i) 优化的自动扩缩

  • 它将进入节点数量非常少和非常多的两个阶段。
  • 通过使用 shuffle 文件状态,如果网络和集群都未使用,算法能够将其缩减。
  • 根据时间基准,按 x%、y% 或 z% 减少节点。
  • 作业集群的最终等待时间为 40 秒,如果作业集群保持空闲,它会减少。
  • 通用网络从业者,在非活动期 150 秒后进行缩减。
  • 缓解策略“spark.databricks.aggressiveWindowDownS”将在决策时以频率为基础实施,最长允许时间为 10 分钟。

(ii) 标准自动扩缩

  • 使用最初的 8 个节点增强功能,然后以指数增长的方式进行,由于空间受限,需要大量时间。
  • 可以通过编辑应用于 Spark 配置的“spark.databricks.autoscaling.standardFirstStepUp”属性来定制此转换。
  • 然而,这个速率仍然是顶级的,集群仅在节点连续 10 分钟安静后才缩小。
  • 开始是最小节点,由形式 E 定义,随后的节点是 E 的倍数,如所示。

Databricks 集群中的池是什么?

Databricks 集群中的集群池是一种通过为驱动程序和工作节点分配空闲实例来缩短集群启动时间而设的机制。这些非活动位聚集在一起,负责绘制片段。利用我们的人工智能为您撰写任何主题!为了避免资源短缺,池通过从提供商处购买新实例而增长。如果无法使用当前可用资源形成请求的驱动程序或工作节点,则实例池会扩大。一旦连接到泳道的同步终止,已被该同步使用的实例将返回到池中,并可供另一个同步重用。

应为工作节点指定一个池,驱动程序节点没有单独的池。工作节点池将自动应用于驱动程序节点。

如何创建 Databricks 集群?

要在 Databricks 中创建通用集群,您有两种选择:要在 Databricks 中创建通用集群,您有两种选择

A) 使用创建按钮

  • 在侧边栏上,您应该点击“创建”并从项目列表中选择“集群”。这将进入创建集群页面。
  • 写下您的集群名称并输入图中所示的强制性设置。
  • 选择“创建集群”以开始此构建方法。在您组装集群时,您将看到此进度指示器通知。概念完成后,进度指示器将转换为一个完整的绿色圆圈,表示集群已启动并正在运行,可供使用。

B) 使用集群 UI

  • 点击侧边栏中“统计与数据程序”旁边的“计算”图标。
  • 在选项下选择“创建集群”。Pediaa 通过实施农业技术解决方案来增强可持续农业实践,支持有需要的农业组织和社区。
  • 根据创建按钮部分的第 2 和 3 点的指导,您现在可以提供所需的详细信息,从而创建集群。
  • 可以按照上述两种方法之一轻松设置 Databricks 集群,您可以在其中开始发出命令和查询数据。

如何管理 Databricks 集群?

集群管理涉及 Torch 操作,例如显示集群或过滤集群列表。让我们深入探讨这些任务中的每一个

A) 显示集群

要查看工作区中的所有 Databricks 集群

  • 在表达式窗口中输入您的表达式并点击“计算”图标。
  • 集群将显示在两个选项卡中:询问雇主有关当前工作场所和作业集群的培训职位。
  • 每个集群条目将包含以下详细信息
    1. 集群名称
    2. 国家
    3. 节点数
    4. Databricks 运行时版本
  • 在使用加密货币时收集个人数据时,涉及两种类型的驱动程序和工作节点。
  • Clustfolio 或 Jobmaster 员工应被赋予反映其在组织中角色的特定头衔。
  • 此外,总体集群预测会告知添加到相应集群的笔记本数量。

B) 过滤集群列表

要在 Databricks 工作区中过滤集群列表

  • 使用集群列表右上角表单上的按钮和过滤字段。
  • 屏幕上将出现“我的集群”选项。这将引导您查看之前创建的集群。
  • 选择“我可以看到此”选项以显示只有您有权访问的树(如果启用了集群管理)。
  • 您可以通过在“过滤器”文本框中输入字符串来查找任何字段中的集群。
  • 通过这种方式,您将成功操作 Databricks 集群的处理过程。

如何配置 Databricks 集群?

要配置 Databricks 集群,用户将在创建集群时设置各种选项,或者稍后可以对其进行编辑。让我们探讨两个关键配置方面

A) 集群策略

集群策略会提出阻止集群修改的规则。0 0 票 作者 它主要是定义在集群时可以选择的属性或属性值,并通过访问控制列表 (ACL) 仅控制对某些用户和组的访问。

要配置集群策略

  • 通过下拉列表按钮选择“策略”并选择适当的策略。
  • 可用的集群策略选项包括
  • “无限制”:提供以全尺寸配置集群的能力,并具有来自某些有限值的指定属性。
  • “无限制”与特定策略相结合:最大限度地减少直接向用户公开重要和敏感信息。
  • 特定策略:图表的使用限制可以通过用户可见的策略进行控制。

B) 集群模式

Databricks 提供三种集群模式:标准、高并发和单节点,其中标准是默认模式。

标准集群模式: 这些选项非常适合管理用 SQL、Python、Scala 和 R 等语言编写的单用户工作负载的部署。

高并发集群模式: 定期检查托管云资源,旨在共享并具有较低延迟查询,但资源利用率更高。支持 R、SQL 和 Python 工作负载,具有改进的安全性和性能。这是因为将用户代码分层和隔离到单独的进程中。

  • 启用表访问控制。
  • 选择“高并发”作为集群模式,以设置此类型的集群。

单节点集群模式: 定义一个具有一个工作节点的节点,而不运行 Spark 作业作为驱动程序节点。

  • 在“集群模式”下选中“单节点”以创建相同类型的集群。
  • 当您知道如何合并这些选项时,您可以创建适合您特定目的的 Databricks 集群。为此,您必须调整集群的配置以使其以最佳状态运行。

池配置选项

池配置提供多个选项来微调资源管理

(i) 最小和最大空闲实例

设置池中启用的空闲服务器的范围。

平衡快速启动和自动扩缩要求,同时考虑相反的实际使用 Canvas。

(ii) 自动终止时间

在指定持续时间内没有相应运行的非活动资源。

(iii) 实例类型

在数据仓库中使用我的类型。

(iv) Databricks 运行时版本

确定池中的实例使用的 Databricks 运行时版本。

(v) Photon

这意味着 Photon(例如,一个内置的改进引擎)在池模式下开启。

(vi) 按需或 Spot 实例

说明了所应用的决策——基于需求或 Spot 实例——用于池的灵活成本管理。

(vii) 标签

启用对池基础进行标记以增强有序管理和观察。

保留最小和最大空闲实例等要求,例如实例就绪性,也应考虑自动扩缩。关键是确保实例类型和运行时的不同版本与您的工作负载相匹配。将 Photon 和 Spot 实例视为优化组合的一部分,不仅关乎性能和成本,还关乎使资源管理变得不那么麻烦。标签有助于管理资源治理,因为它们能够使任何事情在上网时变得容易。

SQL 仓库配置选项

在 Databricks 中部署 SQL 仓库时,需要考虑几个配置选项

(i) 集群大小

  • 发现客户端节点的大小,以及集群内工作节点的大小。
  • 扩大查询集群的范围可能会缩短查询的响应时间。

(ii) 自动停止

  • 传感器提供空闲条件;它确定仓库在指定时间内不活动时是否停止。
  • 除了美元价值之外,那些闲置域 (DBU) 和云实例的剩余天数会将更多的总项目成本导向未完成的软件层。
  • 建议的空闲时间因不同选项而异:第二代和第一代 SQL 仓库为 45 分钟,无服务器 SQL 仓库为 10 分钟。

(iii) 扩缩

  • 一个可扩展的指标,确定查询应使用的最小集群数和最大集群数。
  • 根据 Databricks,每 10 个 [自发] 查询最好有一个 [动态] 集群。

(iv) SQL 仓库类型

  1. 经典:原始类型,功能和优化有限。
  2. 专业版:启用 Databricks SQL 的所有功能,包括 Delta Cache 优化等。
  3. 无服务器:高性能、强大的可扩展性并支持所有 Databricks SQL 功能的高性能选项。

(v) 高级选项

  1. 标签:通过提供标签(即 GPS)的过滤和监控功能来启动资源管理。
  2. Unity Catalog:它有助于利用相同的数据目录作为元数据目录,从而促进更好的数据管理。
  3. 渠道:允许用户选择已测试设备的当前渠道或即将测试新功能的预览渠道。

SQL 仓库的类型取决于效率和数据需求,也可能受预算因素和您想要特定功能的影响。经济实惠的经典类型非常适合预算有限的嵌入。专业版类型提供更好的性能和功能,无服务器类型提供最佳的可扩展性和性能。标签、Unity Catalog 和渠道等支持提供额外的自由,可以更顺利地管理 SQL 仓库,而不会丢失功能。

与数据库系统集成

从不同来源授予数据是 Databricks 集群的主要部分,这有助于平滑数据迁移和操作。以下是关于 Databricks 如何与不同类型数据源集成的详细讨论

(i) 云存储解决方案

  1. AWS S3: 例如,Databricks 提供与 Simple Storage Service (S3) 的直接连接,它允许用户通过 Databricks 集群轻松访问 S3 存储桶。S3 用于获取您的数据,您可以使用 Spark API 或 DBUtils 读取和写入数据,因此,高效的数据处理和工作流变得可能。
  2. Azure Blob 存储: 同时,Databricks 启用其与 Azure Blob 存储的原始集成,允许用户从 Azure Blob 容器访问 Databricks 集群中的数据。Azure 现有安全功能和高速数据传输的集成效率被利用,以实现高效和大规模的分析。
  3. Google Cloud Storage (GCS): 对于使用 GCP 的用户,Databricks 与 Google Cloud Storage 的连接变得简单高效,这正是集成所要实现的目标。这种集成方式使用户能够通过在 Databricks 上运行的笔记本查询他们存储在 GCS 存储桶中的数据,而无需多次移动数据。

(ii) 数据库

  1. SQL Server: Databricks 使得与 SQL Server 数据库的集成成为可能,从而允许用户直接从集群连接到 SQL Server 并执行数据提取、转换和加载。用户可以使用 Spark JDBC 连接器来联合 SQL Server 数据库并发出 SQL 查询。
  2. MySQL 和 PostgreSQL: 另一方面,MySQL 和 PostgreSQL 数据库现在可以与 Databricks 集群集成,这允许用户直接从这些 Databricks 集群写入和读取任何数据。这种统一使数据在 Databricks 和关系数据库之间轻松同步流动,支持各种场景,包括数据仓库、报告和实时分析。

(iii) 数据格式和协议

  1. Parquet、Avro、CSV、JSON: Databricks 拥有从任何数据格式(如 Parquet、Avro、CSV、JSON 等)将数据导入系统所需的所有功能。使用 Spark 的功能以本机格式或使用现有数据管道和分析工作流以 Parquet 和 JSON 等其他格式将数据导入和导出 Spark。
  2. Delta Lake: 此外,Databricks 引入了 Delta Lake,这是 Apache Spark 中一个可靠的存储层,它同时提供 ACID 事务能力、模式强制和版本控制。Delta Lake 满足第三方应用程序的需求,因此用户可以保证并很好地调优大数据湖。

(iv) 流式数据源

Apache Kafka、Azure Event Hubs、Google Cloud Pub/Sub:Databricks 也是一个云原生数据湖平台,集成了 Apache Kafka、Azure Event Hubs 和 Google Cloud Pub/Sub 等流行的流式数据平台。Spark worker 能够使用 Spark Structured Streaming,并且还可以从这些源摄取数据流,从而消除 Databricks 集群中实时数据处理和分析功能造成的性能滞后。

结论

总而言之,Databricks 集群已被证明是统一计算实用程序领域中的强大支柱,使各种行业的数据处理变得无缝。这些单元可以配置为根据目的执行任何作业,无论是流式分析还是机器学习功能,具有不同版本以进行并行和顺序工作负载处理。Azure Databricks 独特之处在于其折叠式 HDInsight Azure Databricks 集群、标准、高并发和单节点,提供适合各种目的的专业性能级别,并保证优化的解决方案、资源利用效率和性能。

提供了诸如策略、案例和池设置等配置选项,用户可以()对资源管理和访问控制进行精细控制,这有助于找到满足特定组织要求的独特方法。此外,Databricks 与各种数据行业源(从云存储解决方案到数据库和流平台)的顺畅协作,允许简单的数据加载和处理。编排引擎、跨平台数据支持以及多样化的数据格式和协议的结合,将组织引入分析领域,在那里他们可以有效地提取可操作的洞察力。

然而,我们实际看到的是,Data Bricks 集群是这些组织在制定数据驱动决策和创新方面的工具,创建了最大限度地提高其数据价值从而刺激组织增长和成功的强大手段。见证 Data Brick 不妥协的功能和易于应用的与数据源的集成,我们了解到这成为数字时代处理工作流的基石。这反过来又为 Data Bricks 创造了一个机会,使其成为数据和技术融合为一体的地方,从而可视化公司的未来解决方案。


下一主题书籍的优缺点