Azure Data Lake U-SQL作业失败,并出现错误:JM_FinalMetadataOperationUserError

Tay*_*war 1 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)
Run Code Online (Sandbox Code Playgroud)

错误消息指出:

Failed to write job meta-data due to user error
Run Code Online (Sandbox Code Playgroud)

什么会导致此问题?是由于从表中添加/截断了值吗?

希望能有所帮助。

Mic*_*Rys 5

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

当前,我们正在研究如何改善错误消息并减少此类竞争情况的机会。

[添加]以下是查看工作历史记录和种族条件证明的详细信息(匿名帐户名称):

  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 * /)的信息

  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 =“ entity 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:对象ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246320.20.0ZZ-01000000 */) 已经存在。

如果您想进一步了解更多信息,请通过Microsoft的mrys与我联系。