关于大数据文件共享
大数据文件共享是在门户中创建的项目,可以将可用位置引用到 ArcGIS GeoAnalytics Server。大数据文件共享位置可用作 GeoAnalytics 工具中要素数据(点、线、面和表格数据)的输入和输出。创建大数据文件共享时,将在门户中创建项目。该项目指向大数据目录服务,该服务概述了大数据文件共享中的数据集及其方案,包括几何和时间信息,以及已注册的输出格式(称为模板)。将大数据文件共享用于 ArcGIS GeoAnalytics Server 工具的输入时,您可以浏览项目以运行数据集分析。
使用大数据文件共享存在诸多益处。在可以开始执行分析前,您可以将数据保存在您可访问的位置。大数据文件共享可用于在运行分析时访问数据,以便您可以继续将数据添加到大数据文件共享的现有数据集,而无需重新注册或发布数据。您还可以修改清单以删除、添加或更新大数据文件共享中的数据集。大数据文件共享在时间和几何的定义方式上极其灵活,允许在单个数据集上使用多种时间格式。大数据文件共享还可用于对数据集进行分区,同时仍将多个分区视为一个数据集。针对输出数据使用大数据文件共享,允许您将结果存储为可用于其他工作流的格式,例如可用于进一步分析或存储的 Parquet 文件。
注:
只有当您运行 GeoAnalytics 工具 时,才能访问大数据文件共享。这意味着您只能浏览大数据文件和将其添加到您的分析中;无法在地图上显示该数据。
大数据文件共享可以引用以下输入数据源:
- 文件共享 - 本地磁盘或网络共享上的数据集目录。
- Apache Hadoop Distributed File System (HDFS) - 数据集的 HDFS 目录。
- Apache Hive - Hive 元数据存储数据库。
- 云存储 - 包含数据集目录的 Amazon Simple Storage Service (S3) 存储段、Microsoft Azure Blob 容器或 Microsoft Azure Data Lake 存储。
将结果写入大数据文件共享时,您可以使用以下输出 GeoAnalytics 工具:
- 文件共享
- HDFS
- 云存储
在大数据文件共享中支持将以下文件类型作为输入和输出数据集:
- 分隔文件(例如 .csv、.tsv 和 .txt)
- Shapefile (.shp)
- Parquet 文件 (.gz.parquet)
- ORC 文件 (orc.crc)
注:
仅在门户管理员启用 GeoAnalytics Server 后才能使用大数据文件共享。有关启用 GeoAnalytics Server 的详细信息,请参阅设置 ArcGIS GeoAnalytics Server。
大数据文件共享是 GeoAnalytics 工具 访问数据的多种方式之一,GeoAnalytics 工具 没有此项要求。有关可能使用的 GeoAnalytics 工具 数据输入和输出的列表,请参阅在 Map Viewer 中使用 GeoAnalytics 工具。
您可以根据需要注册多个大数据文件共享。每个大数据文件共享可以包含任意数量的数据集。
下表概述了讨论大数据文件共享时的一些重要术语。
术语 | 描述 |
---|---|
大数据文件共享 | 注册到 GeoAnalytics Server 的位置可用作 GeoAnalytics 工具的数据集输入或输出,也可以同时用作输入和输出。 |
大数据目录服务 | 该服务概述了大数据文件共享的输入数据集和方案以及输出模板名称。该服务是在注册大数据文件共享及创建清单时创建的。 有关大数据目录服务的详细信息,请参阅 ArcGIS Services REST API 帮助中的大数据目录服务文档。 |
大数据文件共享项目 | 门户中引用大数据目录服务的项目。您可以通过在门户中共享此项目来控制哪些用户有权将您的大数据文件共享用作 GeoAnalytics 的输入。 |
清单 | JSON 文件概述了大数据文件共享中的可用数据集和输入方案。注册大数据文件共享时会自动生成清单,您可以通过编辑或使用提示文件对该清单进行修改。单个大数据文件共享具有一个清单。 |
输出模板 | 将结果写入大数据文件共享时,可概述文件类型和可选格式的一个或多个模板。例如,模板可以指定将结果写入 shapefile。大数据文件共享可以不包含输出模板,也可以包含一个或多个输出模板。 |
大数据文件共享类型 | 您正在注册的位置类型。例如,您可能拥有大数据文件共享或类型 HDFS。 |
大数据文件共享数据集格式 | 您正在读取或写入的数据格式。例如,文件类型可以是 shapefile。 |
提示文件 | 该文件为可选文件,可用于帮助生成用作输入的分隔文件的清单。 |
准备要注册为大数据文件共享的数据
要将数据集用作大数据文件共享的输入,您需要先确保数据格式正确。有关基于大数据文件共享类型的格式,请参阅以下内容。
文件共享和 HDFS
要准备进行大数据文件共享的数据,需要将数据集格式化为将注册的单个父文件夹下的子文件夹。在要注册的该父文件夹中,子文件夹的名称表示数据集名称。如果子文件夹包含多个文件夹或文件,则所有顶级子文件夹的内容将读取为一个数据集,且必须共享同一个方案。下面的示例演示了如何注册包含三个数据集(即 Earthquakes、Hurricanes 和 GlobalOceans)的文件夹 FileShareFolder 。注册父文件夹时,您指定的文件夹下的所有子目录也将注册到 GeoAnalytics Server。始终注册包含一个或多个单个数据集文件夹的父文件夹(例如 \\machinename\FileShareFolder)。
包含三个数据集的大数据文件共享示例:Earthquakes、Hurricanes 和 GlobalOceans。|---FileShareFolder < -- The top-level folder is what is registered as a big data file share
|---Earthquakes < -- A dataset "Earthquakes", composed of 4 csvs with the same schema
|---1960
|---01_1960.csv
|---02_1960.csv
|---1961
|---01_1961.csv
|---02_1961.csv
|---Hurricanes < -- The dataset "Hurricanes", composed of 3 shapefiles with the same schema
|---atlantic_hur.shp
|---pacific_hur.shp
|---otherhurricanes.shp
|---GlobalOceans < -- The dataset "GlobalOceans", composed of a single shapefile
|---oceans.shp
尽管术语不同,但文件共享和 HDFS 均采用该相同结构。在文件共享中,存在一个顶级文件夹或目录,数据集通过子目录表示。在 HDFS 中,文件共享位置已注册并包含数据集。下表概述了区别:
文件共享 | HDFS | |
---|---|---|
大数据文件共享位置 | 文件夹或目录 | HDFS 路径 |
数据集 | 顶级子文件夹 | HDFS 路径内的数据集 |
在将数据按照包含数据集子文件夹的文件夹进行组织后,需要按照使数据可供 GeoAnalytics Server 访问中的步骤进行操作以使数据可供 ArcGIS Server 访问,并注册数据集文件夹。
使用 Kerberos 访问 HDFS
GeoAnalytics Server 可以使用 Kerberos 身份验证访问 HDFS。
注:
GeoAnalytics Server 支持将 RCP 保护设置为身份验证 (hadoop.rpc.protection =authentication). GeoAnalytics Server 当前不支持 集成 (integrity) 或隐私 (privacy) 模式。
请按照以下步骤使用 Kerberos 身份验证注册 HDFS 文件共享:
- 在 Windows 下,将 krb.ini 文件复制到 GeoAnalytics Server 站点中所有计算机的 C:/windows/krb.ini 路径中。在 Windows 下,将 krb.conf 文件复制到 GeoAnalytics Server 站点中所有计算机的 /etc/krb.conf 路径中。
- 从 ArcGIS Server Administrator Directory 登录到您的 GeoAnalytics Server 站点。
ArcGIS Server Administrator Directory 要求您作为管理员进行登录。要连接您的联合 GeoAnalytics Server 站点,必须使用门户令牌(需要门户管理员凭据)或作为 GeoAnalytics Server 站点的主站点管理员进行登录。如果您不是门户管理员或者没有主站点管理员帐户信息权限,请联系您的门户管理员为您完成这些步骤。
- 转至数据 > registerItem。
- 复制下列文本并将其粘贴到项目文本框中。更新以下值:
- <bigDataFileShareName>:根据需要替换为大数据文件共享的名称。
- <hdfs path>:将大数据文件共享的路径更换为完全限定的文件系统路径,例如,hdfs://domainname:port/folder。
- <user@realm>:替换为用户和主体的范围。
- <keytab location>:替换为密钥表文件的位置。密钥表文件必须可供 GeoAnalytics Server 站点中的所有计算机访问(例如,//shared/keytab/hadoop.keytab)。
{ "path": "/bigDataFileShares/<bigDataFileShareName>", "type": "bigDataFileShare", "info": { "connectionString": "{\"path\":\"<hdfs path>",\"accessMode\":\"Kerberos\",\"principal\":\"user@realm\",\"keytab\":\"<keytab location>\"}", "connectionType": "hdfs" } }
- 单击注册项目。
注册项目后,大数据文件共享将附带填充清单,作为数据存储显示在 ArcGIS Server Manager 中。如果清单尚未填充,请继续执行步骤 5。
- 登录到您的 GeoAnalytics Server 站点 ArcGIS Server Manager。
您可以作为发布者或管理员进行登录。
- 转至站点 > 数据存储,然后单击新的大数据文件共享旁边的重新生成清单按钮。
现在您已拥有 HDFS 的大数据文件共享和清单,其中可通过 Kerberos 身份验证访问 HDFS。您的门户中的大数据文件共享项目将指向 GeoAnalytics Server 中的大数据目录服务。
Hive
在 Hive 中,数据库中的所有表格将识别为大数据文件共享中的数据集。在下面的示例中,存在包含两个数据库(default 和 CityData)的元数据存储。当通过 ArcGIS Server 将 Hive 大数据文件共享注册到 GeoAnalytics Server 时,只能选择一个数据库。在此示例中,如果选择了 CityData 数据库,则大数据文件共享中将存在两个数据集,即 FireData 和 LandParcels。|---HiveMetastore < -- The top-level folder is what is registered as a big data file share
|---default < -- A database
|---Earthquakes
|---Hurricanes
|---GlobalOceans
|---CityData < -- A database that is registered (specified in Server Manager)
|---FireData
|---LandParcels
云存储
可以通过以下三个步骤来注册云存储类型的大数据文件共享:
准备数据
要在云存储中准备大数据文件共享的数据,需要将数据集格式化为单个父文件夹下的子文件夹。
以下是如何构建数据的示例: 本示例将注册父文件夹 FileShareFolder,其中包含三个数据集:Earthquakes、Hurricanes 和 GlobalOceans。注册父文件夹时,您指定的文件夹下的所有子目录也将注册到 GeoAnalytics Server。 以下是如何在云存储中构建将用作大数据文件共享的数据的示例: 此大数据文件包含三个数据集:Earthquakes、Hurricanes 和 GlobalOceans。|---Cloud Store < -- The cloud store being registered
|---Container or S3 Bucket Name < -- The container (Azure) or bucket (Amazon) being registered as part of the cloud store
|---FileShareFolder < -- The parent folder that is registered as the 'folder' during cloud store registration
|---Earthquakes < -- The dataset "Earthquakes", composed of 4 csvs with the same schema
|---1960
|---01_1960.csv
|---02_1960.csv
|---1961
|---01_1961.csv
|---02_1961.csv
|---Hurricanes < -- The dataset "Hurricanes", composed of 3 shapefiles with the same schema
|---atlantic_hur.shp
|---pacific_hur.shp
|---otherhurricanes.shp
|---GlobalOceans < -- The dataset "GlobalOceans", composed of 1 shapefile
|---oceans.shp
将云存储注册到您的 GeoAnalytics Server
从 ArcGIS Server Manager 连接到 GeoAnalytics Server 站点以注册云存储。注册云存储时,您必须包含 Azure 容器名称、Amazon S3 存储段名称或 Azure Data Lake Store 帐户名。建议您在容器或存储段中另外指定文件夹。指定文件夹由子文件夹组成,且每个子文件夹都代表单独的数据集。每个数据集由子文件夹的全部内容组成。
将云存储注册为大数据文件共享
请按照以上步骤将您在之前部分中创建的云存储注册为大数据文件共享。
- 从 ArcGIS Server Manager 登录到您的 GeoAnalytics Server 站点。
您可以作为发布者或管理员进行登录。
- 转至站点 > 数据存储,然后从注册下拉列表中选择大数据文件共享。
- 请在注册大数据文件共享对话框中提供以下信息:
- 输入大数据文件共享的名称。
- 从类型下拉列表中选择云存储。
- 从云存储下拉列表中选择云存储的名称。
- 单击创建,将您的云存储注册为大数据文件共享。
现在,您拥有云存储的大数据文件共享和清单。您的门户中的大数据文件共享项目将指向 GeoAnalytics Server 中的大数据目录服务。
注册大数据文件共享
要将文件共享、HDFS 或 Hive 云存储注册为大数据文件共享,请通过 ArcGIS Server Manager 连接到您的 GeoAnalytics Server 站点。有关所需步骤的详细信息,请参阅 ArcGIS Server 帮助中的使用 Manager 将数据注册到 ArcGIS Server。
提示:
上一部分中介绍了将云存储注册为大数据文件共享的步骤。
注册大数据文件共享后,将生成一个清单,其中介绍共享位置中的数据集格式,包括表示几何和时间的字段。如果您选择将大数据文件共享注册为输出位置,则将另外生成一个输出模板清单。将在门户中创建一个大数据文件共享项目,该项目指向注册数据的 GeoAnalytics Server 中的大数据目录服务。有关大数据目录服务的详细信息,请参阅 ArcGIS Services REST API 帮助中的大数据目录服务文档。
修改大数据文件共享
创建大数据目录服务后,系统将自动生成一个输入数据清单并将其上传到注册数据的 GeoAnalytics Server 站点。在生成清单的过程中,可能无法始终正确估算表示几何和时间的字段,您可能需要应用编辑。要编辑清单,请遵循使用 Manager 编辑大数据文件共享清单中的步骤。有关大数据文件共享清单的详细信息,请参阅 ArcGIS Server 帮助中的了解大数据文件共享清单。
修改大数据文件共享的输出模板
当您选择将大数据文件共享用作输出位置时,将自动生成输出模板。这些模板概述了输出分析结果的格式,例如文件类型以及时间和几何的注册方式。要修改几何或时间格式,或添加、删除模板,可通过修改模板来实现。要编辑输出模板,请遵循使用 Manager 编辑大数据文件共享清单中的步骤。关于输出模板的详细信息,请参阅大数据文件共享中的输出模板。
在大数据文件共享中运行分析
可通过支持 GeoAnalytics Server 的任何客户端在大数据文件共享的数据集上运行分析,具体包括:
- ArcGIS Pro
- Map Viewer
- ArcGIS REST API
- ArcGIS API for Python
要通过 ArcGIS Pro 或 Map Viewer 在大数据文件共享上运行分析,请选择要使用的 GeoAnalytics 工具。对于工具的输入,请浏览到 ArcGIS Pro 的门户下或 Map Viewer 的浏览图层对话框中数据所在位置。如果您之前注册了数据,则该数据将位于我的内容中。否则,请在群组或所有门户中查找。请注意,为分析选择的大数据文件共享图层不会显示在地图中。
注:
请确保您登录到具有已注册大数据文件共享的访问权限的门户帐户。可使用项 bigDataFileShare* 搜索门户以快速查找您可以访问的所有大数据文件共享。
要通过 ArcGIS REST API 在大数据文件共享上运行分析,需要使用大数据目录服务 URL 作为输入。该 URL 格式将为 {"url":" https://webadaptorhost.domain.com/webadaptorname/rest/DataStoreCatalogs/bigDataFileShares_filesharename/BigDataCatalogServer/dataset"}。例如,如果计算机名为 example、域名为 esri、Web Adaptor 名为 server、大数据文件共享名为 MyData 且数据集名为 Earthquakes,则 URL 将为:{"url":" https://example.esri.com/server/rest/DataStoreCatalogs/bigDataFileShares_MyData/BigDataCatalogServer/Earthquakes"}。有关通过 REST 的大数据分析输入的详细信息,请参阅 ArcGIS Services REST API 文档中的要素输入主题。
将结果保存到大数据文件共享
您可以针对数据集(大数据文件共享或其他输入)运行分析,并将结果保存到大数据文件共享。将结果保存到大数据文件共享时,您无法将其可视化。可以通过以下客户端执行此操作:
- Map Viewer
- ArcGIS REST API
- ArcGIS API for Python
将结果写入大数据文件共享时,输入清单将更新,以包含刚刚保存的数据集。现在,已写入大数据文件共享的结果可在下次运行工具时作为输入。