繁体   English   中英

来自HDInsight群集的AzCopy在PowerShell脚本中失败

[英]AzCopy from HDInsight cluster failing in PowerShell script

我有一个PowerShell脚本,可以在HDinsight上使用配置单元创建一些输出。 输出放在本地blob中,然后使用AzCopy将其复制到本地计算机。 我做了很多工作来获取我需要的各种数据,通常多次调用该脚本。 问题是,在某些时候, AzCopy错误消息“消息”使用HTTP条件头指定的条件不符合。“,但是在经过多次成功迭代之后。

我不确定这意味着什么,而且一个小小的成绩单也没有多大帮助。 我尝试删除文件并重复AzCopy并且错误仍然存​​在,因此它可能与AzCopy http会话有关。 任何人都可以开导我吗?

PS C:\hive> AzCopy /Y /Source:https://msftcampusdata.blob.core.windows.net/crunch88-1 /Dest:c:\hive\extracts\data\ /SourceKey:attEwHZ9AGq7pzzTYwRvjWwcmwLvFqnkxIvJcTblYnZAs1GSsCCtvbBKz9T/TTtwDSVMDuU3DenBbmOYqPIMhQ== /Pattern:hivehost/stdout 
AzCopy : [2015/05/10 15:08:44][ERROR] hivehost/stdout: The remote server returned an error: (412) The condition specified using HTTP conditional header(s) 
is not met..
At line:1 char:1
+ AzCopy /Y /Source:https://msftcampusdata.blob.core.windows.net/crunch88-1 /Dest: ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: ([2015/05/10 15:...s) is not met..:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

The condition specified using HTTP conditional header(s) is not met.

在此输入图像描述

为了确保整个下载过程中的数据完整性,AzCopy将源blob的ETag传递到HTTP头“If-Match”,同时从源blob读取数据。 因此,HTTP状态代码412(前提条件失败)“不满足使用HTTP条件标头指定的条件。” 只是意味着在AzCopy下载时你的blob被改变了

下载时请避免更改源blob。 如果您必须同时更改源blob,可以尝试以下解决方法:

首先拍摄源blob的快照,然后使用AzCopy(指定/ Snapshot选项)下载blob,以便AzCopy尝试下载源blob及其所有快照。 虽然下载源blob可能会因412(前提条件失败)而失败,但下载快照可以成功。 下载的快照的文件名为:{blob name without extension}({snapshot timestamp})。{extension}。

有关AzCopy和选项/快照的更多信息,请参阅AzCopy命令行实用程序入门

一些更新:

您是否终止了AzCopy,然后使用相同的命令行恢复它? 如果是这样,您需要确保在上一次执行AzCopy之后源blob没有更改,因为AzCopy必须确保在第一次下载AzCopy并成功下载源blob之间的时间段内源blob保持不变。 为了检查是否发生了恢复,您可以检查AzCopy的输出是否包含“在日志目录{Dir Path}中检测到相同命令行的不完整操作,AzCopy将开始恢复。”。

因为/ Y是在命令行中指定的,所以恢复提示将始终回答“是”。 要避免恢复行为,可以在执行AzCopy之前清除默认日记文件夹“%LocalAppData%\\ Microsoft \\ Azure \\ AzCopy”,或指定/ Z:为每次执行配置唯一的日记文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM