大数据分析系统 (Apache Spark)

Apache Spark 部署模式旨在使用 Spark 库将空间分析引入数据科学家熟悉的环境,使他们能够通过新的或现有的分析工作流中的空间函数和流程来增加价值。 Apache Spark 提供分布式计算能力,支持访问各类数据集,具备强大的功能库,能够对结构化分析内容进行探索与交互,并生成可供利益相关方或后续业务流程使用的结果。

Esri 提供的 Spark 库 (ArcGIS GeoAnalytics Engine) 可为 Apache Spark 上的大数据分析系统模式提供支持。 ArcGIS GeoAnalytics Engine 使用 Apache Spark 访问 150 多个云原生地理分析工具和功能,以了解趋势、模式和相关性。 ArcGIS GeoAnalytics Engine 可以安装在个人计算机或独立的 Spark 集群上,但大多数组织倾向于在云中使用托管 Spark 服务。 这些云托管环境可简化大数据处理、实现可扩展性、优化成本、利用高级分析功能、确保安全性和合规性,并从云提供商提供的托管服务和支持中受益。 其中包括 Amazon EMR、Databricks、Azure Synapse Analytics、Google Cloud Dataproc 和 Microsoft Fabric。

除了 ArcGIS GeoAnalytics Engine 之外,Esri 还提供了一个用于空间大数据分析的替代 Spark 库,称为大数据工具包。 大数据工具包 (BDT) 是一款 Esri 专业服务解决方案,可提供一些独特的功能,并且可能适用于需要扩展空间功能和具有增强功能工具的某些场景。 有关详细信息,请参阅扩展功能。

相关资源:

基础架构

以下是使用 Apache Spark 的大数据分析系统的典型基础架构。

此逻辑示意图不应按原样用作您的系统设计。 在设计您的系统时,应综合考虑许多重要因素和设计选项。 有关详细信息,请参阅使用系统模式主题。 此外,下图仅提供了系统的基础功能;如需提供扩展功能,则可能需要附加系统组件。

大数据分析系统基础架构 (Apache Spark)

上文所示功能反映了截至 2025 年 12 月可用的功能。

此架构的关键组件包括:

  • 大数据分析系统的基础是 Apache Spark 环境。 Spark 环境包含运行分布式分析任务的节点集群。 ArcGIS GeoAnalytics Engine 可以在许多 Spark 环境中运行,包括本地部署、集群部署和云中的托管 Spark 服务。 支持的托管 Spark 服务包括 Amazon EMR、Azure Synapse Analytics、Google Cloud Dataproc、Databricks 和 Microsoft Fabric。 这些选项为已经在现有云环境中运行工作负载的组织提供了部署路径,包括 Amazon Web Services (AWS)、Google Cloud Platform (GCP) 和 Microsoft Azure 云提供商。
  • ArcGIS GeoAnalytics Engine 是一个 Spark 插件以及一组函数和工具,可在 Apache Spark 集群内的节点上运行。 空间分析任务从 Spark 驱动程序发送到 Spark 执行程序,在那里执行分析工作。 Spark 执行程序通过 Spark 集群管理器管理。 ArcGIS GeoAnalytics Engine 支持 Standalone、Apache Mesos、Hadoop YARN 和 Kubernetes 集群管理器。 了解有关 ArcGIS GeoAnalytics Engine Spark 集群模式的详细信息。
  • 除了 Spark 支持的数据源之外,GeoAnalytics Engine 还支持从一些常见的空间数据源加载和保存数据。 这些包括但不限于文件存储、对象存储、数据湖和数据库 (DBMS) 中的数据。 了解有关支持的数据存储和支持的数据源的详细信息。
  • GeoAnalytics Engine 扩展了 PySpark(Spark 的 Python 接口),并使用 Spark DataFrame 以及自定义几何数据类型来表示空间数据。 GeoAnalytics Engine 附带多个 DataFrame 扩展模块,用于从 PySpark 支持的任何数据源以及 shapefile 和要素服务等数据源中读取数据。 GeoAnalytics Engine 还包括两个用于处理 DataFrame 的核心模块:SQL 函数和工具。 用户通常在其数据分析环境中运行 Python,通过Python 笔记本与大数据分析系统进行交互。 了解有关 ArcGIS GeoAnalytics Engine 入门的详细信息。

此架构中包含以下关键交互:

  1. PySpark Python 代码通常在数据分析环境中运行的 Python 笔记本中开发,作为应用程序捆绑并提交到 Spark 集群。 将作业提交到 Spark 集群的操作通常通过 TCP 执行。 了解有关提交 Spark 应用程序的详细信息。
  2. ArcGIS GeoAnalytics Engine 和数据存储之间的通信是双向的,允许在多个受支持的数据存储中访问和保存数据。 该通信的技术规格将取决于所使用的数据存储类型。 有关详细信息,请参阅 ArcGIS GeoAnalytics Engine 数据存储。

有关 ArcGIS GeoAnalytics Engine 与 Apache Spark 环境之间交互的其他信息,请参阅 ArcGIS GeoAnalytics Engine 产品文档。

功能

Apache Spark 上的大数据分析系统的功能如下所述。

基础功能

基础功能表示由大数据分析系统提供的最常见功能,这些功能由以上介绍的基础架构实现。

扩展功能

添加扩展功能通常是为了满足特定需求或者支持行业特定的数据模型和解决方案,并且可能需要附加软件组件或架构注意事项。

注意事项

以下注意事项将 ArcGIS 优化架构框架的支柱应用于 Apache Spark 上的大数据分析系统。 此处提供的信息并不详尽,而是强调了设计和/或实施这种特定的系统和部署模式组合的关键注意事项。 了解有关 ArcGIS 优化架构框架的架构支柱的详细信息。

可靠性

可靠性可确保您的系统提供业务以及客户和利益相关者所需的相应级别服务。 有关详细信息,请参阅可靠性支柱概览。

  • 可靠性几乎完全由 Apache Spark 环境处理。 需要考虑许多因素,例如集群管理器的选择,这也将根据 Spark 的安装位置(本地、集群或托管云服务)的不同而存在显著差异。
  • 与其他系统相比,SLA 在大数据分析系统中不太常见。

安全性

安全性可保护您的系统和信息。 有关详细信息,请参阅安全性支柱概览。

  • 支持使用 Esri 提供的用户名和密码或许可文件来授权使用大数据分析系统。
  • 身份验证、加密、日志记录和其他安全注意事项通常在 ArcGIS GeoAnalytics Engine 软件之外处理,无论是在数据源还是在 Apache Spark 环境中。 了解有关 Spark 安全性的详细信息。

性能和可扩展性

性能和可扩展性旨在优化用户对系统的整体体验,并确保系统能够扩展以满足不断变化的工作负载需求。 有关详细信息,请参阅性能和可扩展性支柱概览。

  • 利用基于 Apache Spark 的环境的优势在于其分布式计算功能。 许多组织都有云托管环境管理员,他们了解控制集群和托管分析使用的计算资源规模的概念。 空间大数据分析本身并没有什么不同。 大规模执行分析会产生相关成本。 组织应进行成本效益分析,以确定他们希望分配给空间分析的计算资源。

了解有关调整 Spark的详细信息。

自动化

自动化旨在减少在手动部署和运营任务上花费的精力,从而提高运营效率并减少人为引入的系统异常。 有关详细信息,请参阅自动化支柱概览。

  • 分析通常是迭代的,需要在分析执行之间进行人工审核和干预。 但是,在某些情况下,可能需要自动化和/或计划分析的执行。
    • 云托管的 Apache Spark 环境非常常用,它提供额外的自动化选项,可以帮助简化整体操作和使用。
    • 由于大数据分析系统的主要应用程序或接口是 Python,并且 Apache Spark 提供了用于将应用程序提交到集群的脚本,因此分析提交的自动化简单明了且十分灵活。
    • Spark 集群管理器还支持跨应用程序计划作业。 云中的集群管理器和托管 Spark 服务有不同的选项,其中许多选项提供不同的功能。

集成

集成可将此系统与其他系统连接起来,以实现企业级服务交付与组织效能提升。 有关详细信息,请参阅集成支柱概览。

  • 集成在大数据分析系统模式中本身就是一个内在特性,主要在数据层进行集成,同时还包括与 ArcGIS GeoAnalytics Engine 以及 Apache Spark 环境或云端托管的 Spark 服务的集成。
  • 将其与自助制图、分析与共享系统或其他 ArcGIS 系统模式集成,也是企业内部将分析结果发布和共享给其他用户和系统的常见做法。 了解有关使用、集成和组合系统模式的详细信息。

可观测性

可观测性提供了对系统的可见性,由此确保操作人员和其他技术角色能够使系统以健康、稳定的状态运行。 有关详细信息,请参阅可观测性支柱概览。

  • Apache Spark 上大数据管理系统的可观测性通常集中在了解底层基础设施的使用情况和性能,以及了解大型批量分析作业的状态和进度。 监控底层基础设施的使用和性能的方法将取决于所使用的 Apache Spark 环境。 云托管环境之所以受欢迎,部分原因是它们在可观测性方面的优势。 Apache Spark 作业的监控由 Apache Spark 提供。

其他

在 Apache Spark 上设计和实施大数据分析系统的其他注意事项包括:

  • 成功的运作需要对 Apache Spark 的深入理解和坚定专注。 还需要对大型分布式数据和分析概念有深入的理解。

相关资源:

Top