在 Azure Data Lake Gen1 中复制文件/文件夹

Posted

技术标签:

【中文标题】在 Azure Data Lake Gen1 中复制文件/文件夹【英文标题】:Copy File/Folders in Azure Data Lake Gen1 【发布时间】:2018-12-04 10:44:28 【问题描述】:

在 Azure Data Lake Storage Gen1 中,我可以看到文件夹结构、查看文件夹和文件等。 我可以对文件执行操作,例如重命名/删除它们等等

Azure 门户和其他方式中缺少的一项操作是创建文件夹或文件副本的选项

我已尝试使用 PowerShell 并使用门户网站本身来实现 而且好像这个选项不可用

这是有原因的吗?

还有其他选项可以复制 Data-lake 中的文件夹吗?

数据湖存储用作 HDInsight 群集的一部分

【问题讨论】:

【参考方案1】:

您可以使用Azure Storage Explorer 复制文件和文件夹。

    打开存储资源管理器。 在左侧窗格中,展开本地和附加。 右键单击 Data Lake Store,然后 - 从上下文菜单中 - 选择连接到 Data Lake Store.... 输入 Uri,然后该工具导航到您刚刚输入的 URL 的位置。 选择要复制的文件/文件夹。 导航到您想要的目的地。 单击粘贴。

在数据湖中复制文件和文件夹的其他选项包括:

Azure Data Factory AdlCopy(命令行工具)

【讨论】:

当使用存储资源管理器时,这是否意味着数据会扔掉我的电脑或所有流量都在天蓝色云中? 按照上述说明,数据将保留在 Azure 中。【参考方案2】:

我的建议是使用 Azure 数据工厂 (ADF)。如果要复制大文件或文件夹,这是最快的方法。 根据我的经验,10GB 文件将在大约 1 分 20 秒内被复制。 您只需要使用一个数据存储创建简单的管道,该数据存储将用作源数据存储和目标数据存储。

使用 Azure 存储资源管理器 (ASE) 复制大文件很慢,1GB 超过 10 分钟。 与需要创建管道的 ADF 复制不同,使用 ASE 复制文件是与大多数文件资源管理器(复制/粘贴)中最相似的操作。 我认为创建简单的管道是值得付出努力的,尤其是因为管道可以重复用于复制其他文件或文件夹,而只需极少的编辑。

【讨论】:

【参考方案3】:

我同意上面的评论,您可以使用 ADF 复制文件。只是你需要看看它不会增加你的成本。 Microsoft Azure Storage Explorer (MASE) 也是复制 blob 的不错选择。

如果你有非常大的文件,那么下面的选项会更快:

AzCopy:

将单个文件从 blob 下载到本地目录:

AzCopy /Source:https://<StorageAccountName>.blob.core.windows.net/<BlobFolderName(if any)> /Dest:C:\ABC /SourceKey:<BlobAccessKey>  /Pattern:"<fileName>" 

【讨论】:

【参考方案4】:

如果您将 Azure Data Lake Store 与 HDInsight 结合使用,另一个非常高效的选项是使用原生 hadoop 文件系统命令,例如 hdfs dfs -cp,或者如果您想复制大量文件 distcp .比如:

hadoop distcp adl://<data_lake_storage_gen1_account>.azuredatalakestore.net:443/sourcefolder adl://<data_lake_storage_gen1_account>.azuredatalakestore.net:443/targetfolder

如果您使用多个存储帐户,这也是一个不错的选择。另请参阅documentation。

【讨论】:

以上是关于在 Azure Data Lake Gen1 中复制文件/文件夹的主要内容,如果未能解决你的问题,请参考以下文章

使用 Azure 数据工厂 (ADF) 数据流 (DF) 从/向 Azure Data Lake Store gen1 发送和接收数据

有没有办法在写入之前告诉在 Azure Data Lake Storage Gen1 中将 Spark Dataframe 保存为增量表时将创建多少个文件?

无法从 azure databricks 在 azure data Lake 中保存文件

Azure Data PlatformAzure Data Lake——简介

Azure Data PlatformAzure Data Lake——简介

Azure Data PlatformAzure Data Lake——简介