我有一个U-SQL脚本,该脚本以我的个人凭据从VS Code成功执行,但从Data Factory管道触发时失败。我的个人帐户具有Azure订阅的所有者权限。 ADF通过Data Lake Analytics&Store使用服务主体身份验证。
我正在使用带有默认集成运行时的Data Factory V2和Data Lake Gen1。 ADLA防火墙已禁用。
U-SQL脚本非常简单,它仅从CSV文件中读取数据,然后尝试将其写入另一个CSV文件中。这是整个脚本:
@companies =
EXTRACT
Id string,
Name string
FROM @InputFile
USING Extractors.Csv(skipFirstNRows: 1);
OUTPUT @companies
TO @OutputFile
USING Outputters.Csv(outputHeader: true);
参数 InputFile 和 OutputFile 包含输入和输出数据的ADL路径。这些参数是从Data Factory传递的。脚本的第一阶段(“提取”)成功执行,该图显示出错误发生在“ PodAggregate”阶段。如果我尝试将输出写入托管表而不是CSV文件,则会发生类似的错误。
数据工厂中的高级错误消息是:
错误ID:VertexFailedFast,错误消息:Vertex失败,并出现快速失败错误。
Data Lake Analytics提供了更详细的错误:
E_STORE_USER_ERROR:读取或写入数据时报告了用户错误。
组件:商店
描述:操作'Open :: Wait'返回错误代码-2096559454'禁止。 ACL验证失败。资源不存在或用户无权执行所请求的操作。”对于流'adl:// [myadl] .azuredatalakestore.net / adla / tmp / 8a1495dc-8d80-44b9-a724-f2a0a963b3c8 / stack_test / Companies.csv --- 6F21F973-45B9-46C7-805F-192672C99393-9_0_1_1.dtff %23N'。
详细信息:
流名称'adl:// [myadl] .azuredatalakestore.net / adla / tmp / 8a1495dc-8d80-44b9-a724-f2a0a963b3c8 / stack_test / Companies.csv --- 6F21F973-45B9-46C7-805F-192672C99393- 9_0_1.dtf%23N'
2018年7月19日星期四02:35:42:存储用户错误,操作:[打开::等待],错误资源不存在或当前用户无权执行所请求的操作 7ffd8c4195b7 ScopeEngine!?ToStringInternal @ KeySampleCollection @ SSLibV3 @ ScopeEngine @@ AEAA?AV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ XZ + 11b7
7ffd8c39a96d ScopeEngine!?? 0ExceptionWithStack @ ScopeEngine @@ QEAA @ W4ErrorNumber @ 1 @ AEBV?$ initializer_list @ VScopeErrorArg @ ScopeCommon @@@ std @@ _ N @ Z + 13d 7ffd8c3abe3e ScopeEngine!?? 0DeviceException @ ScopeEngine @@ QEAA @ AEAVBlockDevice @ 1 @ AEBV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ J @ Z + 1de < br /> 7ffd8c3f8c7b ScopeEngine!?GetTotalIoWaitTime @ Statistics @ Scanner @ ScopeEngine @@ QEAA_JXZ + 133b 7ffd8c3f87dc ScopeEngine!?GetTotalIoWaitTime @ Statistics @ Scanner @ ScopeEngine @@ QEAA_JXZ + e9c
7ffd9157780d ScopeCodeGenEngine !ScopeEngine :: CosmosOutput :: IssueWritePage + 4d d:\ data \ yarnnm \ local \ usercache \ f675bad0-3d48-4f08-9933-d7cb614ec7a8 \ appcache \ application_1531519980045_88416 \ container_e194 h线:6063 7ffd9156be7d ScopeCodeGenEngine !ScopeEngine :: TextOutputStream,ScopeEngine :: CosmosOutput> :: Write + 2bd d:\ data \ yarnnm \ local \ usercache \ f675bad0-3d48-4f08-9933-d7cb614ec7a8 \ appcache \ application_153151998004545 container_e194_1531519980045_88416_01_000001 \ wd \ scopeio.h行:7828 7ffd91579290 ScopeCodeGenEngine !ScopeEngine :: TextOutputPolicy :: SerializeHeader + 30 d:\ data \ yarnnm \ local \ usercache \ f675bad0-3d48-4f08-9933-d7cb614ec7a8 \ appcache \ application_1531519980045_88416 \ container_e194_153_153。 cpp线:514 7ffd91574ba7 ScopeCodeGenEngine ! SV1_Extract_out0,1>,SV1_Extract_out0,ScopeEngine :: TextOutputPolicy,ScopeEngine :: TextOutputStream,ScopeEngine :: CosmosOutput>,0,ScopeEngine :: ExecutionStats,ScopeEngine :: DummyStatsWriter> :: DoOutput + 27 d:\ data \ yarnnm \ local \ usercache \ f675bad0-3d48-4f08-9933-d7cb614ec7a8 \ appcache \ application_1531519980045_88416 \ container_e194_1531519980045_88416_01_000001 \ wd \ scopeoperators.h行:5713 7ffd91582258 ScopeCodeGenEngine !SV2_PodAggregate_execute + 658 d:\ data \ yarnnm \ local \ usercache \ f675bad0-3d48-4f08-9933-d7cb614ec7a8 \ appcache \ application_1531519980045_88416 \ container_e194_1531519980045_884。 7ffd8c36571d ScopeEngine!?? 1OutputFileInfo @ ScopeEngine @@ QEAA @ XZ + 60d
7ffd8c397aa0 ScopeEngine!?RunUserCode @ Vertex @ ScopeEngine @@ SA_N_NAEBV?$ function @ $$ A6AXXZ @ std @@@@ Z + 1b0
7ffd8c397a4e ScopeEngine!?RunUserCode @ Vertex @ ScopeEngine @@ SA_N_NAEBV?$ function @ $$ A6AXXZ @ std @@@@ Z + 15e
7ffd8c397915 ScopeEngine!?RunUserCode @ Vertex @ ScopeEngine @@ SA_N_NAEBV?$ function @ $$ A6AXXZ @ std @@@@ Z + 25 7ffd8c365c7f ScopeEngine!?? 1OutputFileInfo @ ScopeEngine @@ QEAA @ XZ + b6f
7ffd8c3950c4 ScopeEngine!?Execute @ Vertex @ ScopeEngine @@ SA_NAEBVVertexStartupInfo @ 2 @ PEAUVertexExecutionInfo @ 2 @@ Z + 3f4 7ff731d8ae8d范围主机!(无名称) 7ff731d8adbd范围主机!(无名称) 7ffd8c4274d9 ScopeEngine!?Execute @ VertexHostBase @ ScopeEngine @@ IEAA_NAEAVVertexStartupInfo @ 2 @@ Z + 379 7ff731d8d236 scopehost!(无名称) 7ff731d6a966范围主机!(无名称) 7ff731d98dac示波器主机!(无名称) 7ffd9e4713d2 KERNEL32!BaseThreadInitThunk + 22
7ffd9e5e54e4 ntdll!RtlUserThreadStart + 34
服务主体帐户对Data Lake Analytics具有 Owner 权限。 SP帐户还对Data Lake Store的/ stack_test子目录及其所有文件和子级具有(默认) rwx 权限,对根目录具有 x 权限。错误消息似乎表明SP帐户缺少对目标文件(/stack_test/Companies.csv)的权限,但是我可以明确地看到它在该文件上具有 rwx 。我仍然缺少哪些权限?
作为参考,可在以下网址找到重现此问题所需的脚本和数据工厂资源:https://github.com/lehmus/StackQuestions/tree/master/ADF_ADLA_Auth。