2017-07-05 2 views
2

Je continue à obtenir l'erreur suivante à partir de données d'usine chaque fois que je lance un U-SQL JobU-SQL Job défaut dans les données d'usine

Job submission failed, the user 'adla account name' does not have permissions to a subfolder in the /system/ path needed by Data Lake Analytics. Please run “Add User Wizard” from the Data Lake Analytics Azure Portal or use Azure PowerShell to grant access for the user to the /system/ and its children on the Data Lake Store. 

Et je ne suis pas utiliser un pare-feu comme suggéré dans ce post:

Run U-SQL Script from C# code with Azure Data Factory

J'utilise le service Azure lac données magasin authentification principale. Lorsque je démarre Job à partir de Visual Studio, cela fonctionne également très bien.

Je vous serais reconnaissant de toute idée ...

grâce

+0

Avez-vous explicitement donné les autorisations de compte à Azure Data Lake Store? voir l'étape 2 de http://spr.com/azure-data-lake-store-add-service-to-service-authentication/ –

+0

Oui, je l'ai fait. L'application Active Directory a accès au dossier racine adls et à tous ses enfants ... – COR

Répondre

0

Cela ressemble à un problème d'autorisations. Vous pouvez exécuter ce script PowerShell pour vérifier que vous avez appliqué les autorisations appropriées à la direction de la sécurité:

Login-AzureRmAccount 
$appname = “adla” 
$dataLakeStoreName = “yourdatalakename” 

$app = Get-AzureRmADApplication -DisplayName $appname 

$servicePrincipal = Get-AzureRmADServicePrincipal -SearchString $appname 

Set-AzureRmDataLakeStoreItemAclEntry -AccountName $dataLakeStoreName -Path/-AceType User -Id $servicePrincipal.Id -Permissions All 

Set-AzureRmDataLakeStoreItemAclEntry -AccountName $dataLakeStoreName -Path /system -AceType User -Id $servicePrincipal.Id -Permissions All 

Si vous voulez créer tout à partir de zéro en utilisant un script Powershell, voici un blog qui vous aidera:

http://dyor.com/setting-up-an-azure-data-lake-and-azure-data-factory-using-powershell/

+0

Merci @mattyor ... Le principal de sécurité a l'autorisation du dossier racine de ADLS + tous ses enfants. En outre, il fait partie des autorisations par défaut ... – COR

+1

J'ai vérifié deux fois cela. J'ai assigné des permissions au dossier racine et à tous ses enfants. Toutefois, le système et les dossiers de catalogue n'ont reçu aucune autorisation. J'ai dû réattribuer des autorisations à ces dossiers manuellement. Sûrement le script a aidé. Merci – COR

+1

Excellent! Je trouve que les autorisations Azure Data Lake Store échouent de manière trop silencieuse. J'ai passé quelques heures avec de mauvaises permissions. Si le portail dit "Le responsable de sécurité X essaie d'accéder au dossier Y, mais n'a pas les permissions", cela m'aurait permis de gagner du temps. Mais, si vous utilisez juste powershell pour créer le SP (ce que je fais dans le blog référencé), cela fonctionne aussi. Je vous remercie. – mattdyor

1

Si vous autorisez le service Azure Data Lake Analytics lié à Azure Data Factory avec un service principal qui pourrait être votre problème.

J'ai un ticket de support exceptionnel avec Microsoft parce que la méthode d'authentification de principal de service ne fonctionne qu'avec des activités simples d'usine de données comme 'copier'. Il ne fonctionne pas si vous souhaitez authentifier des activités complexes comme 'DotNotActivity'. Mon conseil serait de changer le service lié en utilisant l'authentification de session et de jeton, puis de déployer vos activités et d'essayer à nouveau.

Espérons que cela aide.

+1

Merci à Paul Andrew pour votre contribution. J'étais capable de résoudre le problème. En fait, le compte de l'application Azure Active Directory utilisait des autorisations sur le "système" et sur les dossiers "catalogue". Ce qui est vraiment bizarre ... Cependant, je garderai votre indice à l'esprit. Merci beaucoup! Et btw, vos blogs rock! – COR