什么是 Databricks 文件系统 (DBFS)?

Databricks 文件系统 (DBFS) 是一个装载到 Azure Databricks 工作区的分布式文件系统,可以在 Azure Databricks 群集上使用。 DBFS 是针对可缩放对象存储的一种抽象,可将类 Unix 文件系统调用映射到本机云存储 API 调用。

注意

Azure Databricks 工作区使用 DBFS 根卷进行部署,默认情况下可供所有用户访问。 Databricks 不建议在此位置存储生产数据。

DBFS 有哪些作用?

DBFS 通过将云对象存储 URI 映射到相对路径来提供便利。

  • 可以使用目录和文件语义(而不是特定于云的 API 命令)与对象存储进行交互
  • 可以装载云对象存储位置,以便将存储凭据映射到 Azure Databricks 工作区中的路径。
  • 简化将文件保存到对象存储的过程,以便在群集终止时安全地删除虚拟机和附加的卷存储。
  • 为存储初始化脚本、JAR、库和群集初始化配置提供方便的位置。
  • 为使用 OSS 深度学习库在模型训练期间创建的检查点文件提供方便的位置。

注意

DBFS 是 FUSE 的 Azure Databricks 实现。 请参阅如何处理 Azure Databricks 中的文件

与基于云的对象存储中的文件交互

DBFS 提供了许多用于与云对象存储中的文件进行交互的方式:

装载对象存储

通过将对象存储装载到 DBFS,可访问对象存储中的对象,就像它们在本地文件系统中一样。 装载会存储访问存储所需的 Hadoop 配置,因此无需在代码中或在群集配置期间指定这些设置。

有关详细信息,请参阅在 Azure Databricks 上装载云对象存储

什么是 DBFS 根?

DBFS 根是 Azure Databricks 工作区的默认存储位置,在云帐户(包含 Azure Databricks 工作区)中创建工作区期间进行预配。 有关 DBFS 根配置和部署的详细信息,请参阅 Azure Databricks 快速入门

某些 Azure Databricks 用户可能将 DBFS 根称为“DBFS”;请务必区分清楚:DBFS 是用于与云对象存储中的数据交互的文件系统,而 DBFS 根则是云对象存储位置。 可以使用 DBFS 与 DBFS 根交互,但二者是不同的概念,且 DBFS 除用作 DBFS 根之外还有许多用途。

DBFS 根包含许多特殊位置,这些位置用作用户在工作区中执行的各种操作的默认位置。 有关详细信息,请参阅默认情况下,DBFS 根中有哪些目录?

DBFS 如何与 Unity Catalog 配合使用?

Unity Catalog 添加了外部位置和托管存储凭证的概念,以帮助组织提供访问云对象存储中数据的最小特权。 Unity Catalog 还针对托管表提供新的默认存储位置。 某些安全配置提供对 Unity Catalog 管理资源和 DBFS 的直接访问。 Databricks 编制了针对使用 DBFS 和 Unity Catalog 的建议。