Azure Data Lake U-SQL作业失败并显示错误:JM_FinalMetadataOperationUserError

时间:2016-06-01 05:53:25

标签: azure-data-lake u-sql

我一直在Azure Data Lake上运行U-SQL作业,这些作业更新了分区表并且运行成功,但在"最终确定"阶段出现错误" 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

什么可能导致这个问题? 是因为从表中添加/截断了值吗?

非常感谢帮助。

1 个答案:

答案 0 :(得分:4)

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

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

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

  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 ="开始获取元实体的信息ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 / * 2012-02-01T12:00:00.0000000Z * /)& #34;

  2. 另一个作业在05/31/2016 01:07:53.766创建的分区(在编译失败的作业之后但在元数据操作执行失败的作业之前)。 工作网址: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. 在05/31/2016 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:Object ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 / * 2012-02-01T12:00:00.0000000Z */) 已经存在。
  4. 如果您想了解更多详细信息,请与Microsoft的mrys联系。