Azure Data Lake U-SQL job failing with error: JM_FinalMetadataOperationUserError

Azure Data Lake U-SQL job failing with error: JM_FinalMetadataOperationUserError

我一直在 Azure Data Lake 上 运行ning U-SQL 作业更新分区 tables 并且它们 运行 成功,但在 "Finalizing"阶段错误"JM_FinalMetadataOperationUserError",堆栈跟踪如下:

Object ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary
(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */) 
already exists at Scope.MetadataService.Client.WcfBasedMetadataClient.ExecuteMetadataJob(MetadataJob mdJob) 
at MetaDataExecutor.RealMetaDataExecutor.Execute(MetadataJob job) 
at MetaDataExecutor.Committer.Commit(MetadataJob job)

错误消息指出:

Failed to write job meta-data due to user error

什么会导致这个问题? 是因为 table 中的值是 added/truncated 吗?

非常感谢您的帮助。

错误的原因是你运行两个作业同时创建了同一个分区。一个脚本已完成,第二个脚本在检测到分区已创建时失败。

我们目前正在研究如何改进错误消息并减少出现此类竞争条件的可能性。

[已添加] 以下是查看工作历史和竞争条件证据的详细信息(匿名帐户名称):

  1. 此作业编译于 05/31/2016 00:56:06.100。此时分区不存在,所以代数中包含该分区的CreateEntityOperation。 日志: d,05/31/2016 00:56:06.100,ScopeMetadataService,GetMetaEntity,SrcFile="" SrcFunc="" SrcLine="0" Pid="17072" Tid="16548" TS="0x01D1BB11E2999697" String1="Begin to get information of meta entity ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */)"

  2. 另一个作业在 05/31/2016 01:07:53.766 创建的分区(在失败作业编译之后但在失败作业的元数据操作执行之前)。 作业 url:https://b******.azuredatalakeanalytics.net/Jobs/909c4680-fd90-452a-93b0-fcc7860de504?api-version=2015-02-12 日志: d,05/31/2016 01:07:53.766,ScopeMetadataService,CreateEntity,SrcFile="" SrcFunc="" SrcLine="0" Pid="17608" Tid="20028" TS="0x01D1BB138866CD29" String1="实体 ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */) 创建成功。

  3. 执行元数据操作以在 2016 年 5 月 31 日创建分区时用户作业失败 02:17:57.241,因为该分区由另一个作业创建。 日志: e,05/31/2016 02:17:57.241,ScopeMetadataService,SMS 提交元数据任务时出现意外异常,SrcFile="" SrcFunc="" SrcLine="0" Pid="17072" Tid="20972" TS= “0x01D1BB1D51DE3815” String1="Scope.MetadataService.Contract.FaultContract.AlreadyExistException: 对象 ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */) 已经存在。

如果您想了解更多详情,请通过 mrys at Microsoft 与我联系。