Copier des données depuis le serveur HDFS à l’aide d’Azure Data Factory ou Synapse Analytics
S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics
Conseil
Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !
Cet article décrit comment copier des données à partir du serveur Hadoop Distributed File System (HDFS). Pour plus d’informations, consultez les articles de présentation pour Azure Data Factory et Synapse Analytics.
Fonctionnalités prises en charge
Ce connecteur HDFS est pris en charge pour les fonctionnalités suivantes :
Fonctionnalités prises en charge | IR |
---|---|
Activité de copie (source/-) | ① ② |
Activité de recherche | ① ② |
Supprimer l’activité | ① ② |
① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé
Plus précisément, le connecteur HDFS prend en charge ce qui suit :
- Copie de fichiers en utilisant une authentification Windows (Kerberos) ou Anonyme.
- Copie de fichiers en utilisant le protocole webhdfs ou la prise en charge de DistCp intégré.
- Copie de fichiers en l’état, ou analyse ou génération de fichiers avec les formats de fichier et codecs de compression pris en charge.
Prérequis
Si votre magasin de données se trouve dans un réseau local, un réseau virtuel Azure ou un cloud privé virtuel Amazon, vous devez configurer un runtime d’intégration auto-hébergé pour vous y connecter.
Si votre magasin de données est un service de données cloud managé, vous pouvez utiliser Azure Integration Runtime. Si l’accès est limité aux adresses IP qui sont approuvées dans les règles de pare-feu, vous pouvez ajouter les adresses IP Azure Integration Runtime dans la liste d’autorisation.
Vous pouvez également utiliser la fonctionnalité de runtime d’intégration de réseau virtuel managé dans Azure Data Factory pour accéder au réseau local sans installer et configurer un runtime d’intégration auto-hébergé.
Pour plus d’informations sur les mécanismes de sécurité réseau et les options pris en charge par Data Factory, consultez Stratégies d’accès aux données.
Notes
Assurez-vous que le runtime d'intégration peut accéder à tous les éléments [serveur du nœud de nom]:[port du nœud de nom] et [serveurs du nœud de données]:[port du nœud de données] du cluster Hadoop. Le [port du nœud de nom] par défaut est 50070 et le [port du nœud de données] par défaut est 50075.
Bien démarrer
Pour effectuer l’activité Copie avec un pipeline, vous pouvez vous servir de l’un des outils ou kits SDK suivants :
- L’outil Copier des données
- Le portail Azure
- Le kit SDK .NET
- Le kit SDK Python
- Azure PowerShell
- L’API REST
- Le modèle Azure Resource Manager
Créer un service lié à HDFS à l’aide de l’interface utilisateur
Utilisez les étapes suivantes pour créer un service lié à HDFS dans l’interface utilisateur du portail Azure.
Accédez à l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse et sélectionnez Services liés, puis cliquez sur Nouveau :
Recherchez HDFS et sélectionnez le connecteur HDFS.
Configurez les informations du service, testez la connexion et créez le nouveau service lié.
Détails de configuration des connecteurs
Les sections suivantes fournissent des informations sur les propriétés utilisées pour définir les entités Data Factory spécifiques de HDFS :
Propriétés du service lié
Les propriétés prises en charge pour le service lié HDFS sont les suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur Hdfs. | Oui |
url | URL vers le système HDFS | Oui |
authenticationType | Valeurs autorisées : Anonyme ou Windows. Pour configurer votre environnement local, consultez la section Utiliser l’authentification Kerberos pour le connecteur HDFS. |
Oui |
userName | Nom d’utilisateur de l’authentification Windows. Pour l’authentification Kerberos, spécifiez <username>@<domain>.com. | Oui (pour l’authentification Windows) |
mot de passe | Mot de passe de l’authentification Windows. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. | Oui (pour l’authentification Windows) |
connectVia | Le runtime d’intégration à utiliser pour se connecter à la banque de données. Pour en savoir plus, consultez la section Conditions préalables. Si le runtime d’intégration n’est pas spécifié, le service utilise le runtime d’intégration Azure par défaut. | Non |
Exemple : utilisation d’une authentification anonyme
{
"name": "HDFSLinkedService",
"properties": {
"type": "Hdfs",
"typeProperties": {
"url" : "http://<machine>:50070/webhdfs/v1/",
"authenticationType": "Anonymous",
"userName": "hadoop"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemple : utilisation d’une authentification Windows
{
"name": "HDFSLinkedService",
"properties": {
"type": "Hdfs",
"typeProperties": {
"url" : "http://<machine>:50070/webhdfs/v1/",
"authenticationType": "Windows",
"userName": "<username>@<domain>.com (for Kerberos auth)",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriétés du jeu de données
Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez Jeux de données.
Azure Data Factory prend en charge les formats de fichier suivants. Reportez-vous à chaque article pour les paramètres basés sur le format.
- Format Avro
- Format binaire
- Format de texte délimité
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Les propriétés suivantes sont prises en charge pour HDFS sous les paramètres location
dans le jeu de données basé sur le format :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété de type sous location dans le jeu de données doit être définie sur HdfsLocation. |
Oui |
folderPath | Chemin du dossier. Si vous souhaitez utiliser un caractère générique pour filtrer le dossier, ignorez ce paramètre et spécifiez le chemin dans les paramètres de la source de l’activité. | Non |
fileName | Nom de fichier sous le chemin folderPath spécifié. Si vous souhaitez utiliser un caractère générique pour filtrer les fichiers, ignorez ce paramètre et spécifiez le nom de fichier dans les paramètres de la source de l’activité. | Non |
Exemple :
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<HDFS linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "HdfsLocation",
"folderPath": "root/folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Propriétés de l’activité de copie
Pour obtenir la liste complète des sections et des propriétés permettant de définir des activités, consultez Pipelines et activités. Cette section fournit la liste des propriétés prises en charge par la source HDFS.
HDFS en tant que source
Azure Data Factory prend en charge les formats de fichier suivants. Reportez-vous à chaque article pour les paramètres basés sur le format.
- Format Avro
- Format binaire
- Format de texte délimité
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Les propriétés suivantes sont prises en charge pour HDFS sous les paramètres storeSettings
dans la source de la copie basée sur le format :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type sous storeSettings doit être définie sur HdfsReadSettings. |
Oui |
Rechercher les fichiers à copier | ||
OPTION 1 : chemin d’accès statique |
Copiez à partir du chemin d’accès au dossier ou au fichier spécifié dans le jeu de données. Si vous souhaitez copier tous les fichiers d’un dossier, spécifiez en plus wildcardFileName comme * . |
|
OPTION 2 : caractère générique - wildcardFolderPath |
Chemin d’accès du dossier avec des caractères génériques pour filtrer les dossiers sources. Les caractères génériques autorisés sont les suivants : * (correspond à zéro caractère ou plusieurs) et ? (correspond à zéro ou un caractère). Utilisez ^ comme caractère d’échappement si le nom réel de votre dossier contient un caractère générique ou ce caractère d’échappement. Pour d’autres exemples, consultez dans Exemples de filtre de dossier et de fichier. |
Non |
OPTION 2 : caractère générique - wildcardFileName |
Nom du fichier avec des caractères génériques situé dans le chemin d’accès folderPath/wildcardFolderPath spécifié pour filtrer les fichiers sources. Les caractères génériques autorisés sont * (correspond à zéro ou plusieurs caractères) et ? (correspond à zéro ou un caractère) ; utilisez ^ en guise d’échappement si votre nom de fichier contient effectivement ce caractère d’échappement ou générique. Pour d’autres exemples, consultez dans Exemples de filtre de dossier et de fichier. |
Oui |
OPTION 3 : liste de fichiers - fileListPath |
Indique de copier un ensemble de fichiers spécifié. Pointez vers un fichier texte qui contient une liste de fichiers que vous voulez copier (un fichier par ligne étant le chemin d’accès relatif au chemin d’accès configuré dans le jeu de données). Lorsque vous utilisez cette option, ne spécifiez pas de nom de fichier dans le jeu de données. Pour plus d’exemples, consultez Exemples de listes de fichiers. |
Non |
Paramètres supplémentaires | ||
recursive | Indique si les données sont lues de manière récursive à partir des sous-dossiers ou uniquement du dossier spécifié. Lorsque l’option recursive est définie sur true et que le récepteur est un magasin basé sur un fichier, aucun dossier ou sous-dossier vide n’est copié ou créé au niveau du récepteur. Les valeurs autorisées sont true (par défaut) et false. Cette propriété ne s’applique pas lorsque vous configurez fileListPath . |
Non |
deleteFilesAfterCompletion | Indique si les fichiers binaires seront supprimés du magasin source après leur déplacement vers le magasin de destination. La suppression se faisant par fichier, lorsque l’activité de copie échoue, vous pouvez constater que certains fichiers ont déjà été copiés vers la destination et supprimés de la source, tandis que d’autres restent dans le magasin source. Cette propriété est valide uniquement dans un scénario de copie de fichiers binaires. La valeur par défaut est false. |
Non |
modifiedDatetimeStart | Les fichiers sont filtrés en fonction de l’attribut Dernière modification. Les fichiers sont sélectionnés si leur dernière heure de modification est supérieure ou égale à modifiedDatetimeStart et inférieure à modifiedDatetimeEnd . L’heure est appliquée au fuseau horaire UTC au format 2018-12-01T05:00:00Z. Les propriétés peuvent être NULL, ce qui signifie qu’aucun filtre d’attribut de fichier n’est appliqué au jeu de données. Lorsque modifiedDatetimeStart a une valeur DateHeure, mais que modifiedDatetimeEnd est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est supérieur ou égal à la valeur DateHeure sont sélectionnés. Lorsque modifiedDatetimeEnd a une valeur DateHeure, mais que modifiedDatetimeStart est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est inférieur à la valeur DateHeure sont sélectionnés.Cette propriété ne s’applique pas lorsque vous configurez fileListPath . |
Non |
modifiedDatetimeEnd | Identique à ce qui précède. | |
enablePartitionDiscovery | Pour les fichiers partitionnés, spécifiez s’il faut analyser les partitions à partir du chemin d’accès au fichier et les ajouter en tant que colonnes sources supplémentaires. Les valeurs autorisées sont false (par défaut) et true. |
Non |
partitionRootPath | Lorsque la découverte de partition est activée, spécifiez le chemin d’accès racine absolu pour pouvoir lire les dossiers partitionnés en tant que colonnes de données. S’il n’est pas spécifié, par défaut : – Quand vous utilisez le chemin d’accès du fichier dans le jeu de données ou la liste des fichiers sur la source, le chemin racine de la partition est le chemin d’accès configuré dans le jeu de données. – Quand vous utilisez le filtre de dossiers de caractères génériques, le chemin d’accès racine de la partition est le sous-chemin d’accès avant le premier caractère générique. Par exemple, en supposant que vous configurez le chemin d’accès dans le jeu de données en tant que « root/folder/year=2020/month=08/day=27 » : – Si vous spécifiez le chemin d’accès racine de la partition en tant que « root/folder/year=2020 », l’activité de copie génère deux colonnes supplémentaires, month et day , ayant respectivement la valeur « 08 » et « 27 », en plus des colonnes contenues dans les fichiers.– Si le chemin d’accès racine de la partition n’est pas spécifié, aucune colonne supplémentaire n’est générée. |
Non |
maxConcurrentConnections | La limite supérieure de connexions simultanées établies au magasin de données pendant l’exécution de l’activité. Spécifiez une valeur uniquement lorsque vous souhaitez limiter les connexions simultanées. | Non |
Paramètres DistCp | ||
distcpSettings | Groupe de propriétés à utiliser lorsque vous utilisez DistCp HDFS. | Non |
resourceManagerEndpoint | Point de terminaison YARN (Yet Another Resource Negotiator) | Oui, en cas d’utilisation de DistCp |
tempScriptPath | Chemin d’accès du dossier utilisé pour stocker le script de commande DistCp temporaire. Le fichier de script est généré et supprimé une fois le travail de copie terminé. | Oui, en cas d’utilisation de DistCp |
distcpOptions | Options supplémentaires fournies à la commande DistCp. | Non |
Exemple :
"activities":[
{
"name": "CopyFromHDFS",
"type": "Copy",
"inputs": [
{
"referenceName": "<Delimited text input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"formatSettings":{
"type": "DelimitedTextReadSettings",
"skipLineCount": 10
},
"storeSettings":{
"type": "HdfsReadSettings",
"recursive": true,
"distcpSettings": {
"resourceManagerEndpoint": "resourcemanagerendpoint:8088",
"tempScriptPath": "/usr/hadoop/tempscript",
"distcpOptions": "-m 100"
}
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Exemples de filtres de dossier et de fichier
Cette section décrit le comportement résultant de l’utilisation de filtres de caractères génériques dans les noms de fichier et les chemins de dossier.
folderPath | fileName | recursive | Structure du dossier source et résultat du filtrage (les fichiers en gras sont récupérés) |
---|---|---|---|
Folder* |
(vide, utiliser la valeur par défaut) | false | DossierA Fichier1.csv File2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Folder* |
(vide, utiliser la valeur par défaut) | true | DossierA Fichier1.csv File2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Folder* |
*.csv |
false | DossierA Fichier1.csv Fichier2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Folder* |
*.csv |
true | DossierA Fichier1.csv Fichier2.json Sousdossier1 File3.csv File4.json File5.csv AutreDossierB Fichier6.csv |
Exemples de liste de fichiers
Cette section décrit le comportement résultant de l’utilisation d’un chemin d’accès de liste de fichiers dans la source de l’activité Copy. Supposons que vous disposez de la structure de dossiers sources suivante et que vous souhaitez copier les fichiers en gras :
Exemple de structure source | Contenu de FileListToCopy.txt | Configuration |
---|---|---|
root DossierA Fichier1.csv Fichier2.json Sousdossier1 File3.csv File4.json File5.csv Métadonnées FileListToCopy.txt |
File1.csv Subfolder1/File3.csv Subfolder1/File5.csv |
Dans le jeu de données : - chemin d’accès du dossier : root/FolderA Dans la source de l’activité de copie : - chemin d’accès à la liste de fichiers : root/Metadata/FileListToCopy.txt Le chemin d’accès à la liste de fichiers pointe vers un fichier texte dans le même magasin de données qui contient la liste de fichiers que vous voulez copier (un fichier par ligne étant le chemin d’accès relatif au chemin d’accès configuré dans le jeu de données). |
Utiliser DistCp pour copier des données de HDFS
DistCp est un outil en ligne de commande Hadoop natif permettant d’effectuer une copie distribuée dans un cluster Hadoop. Quand vous exécutez une commande dans l’outil DistCp, il répertorie tout d’abord tous les fichiers à copier, puis crée plusieurs tâches de mappage dans le cluster Hadoop. Chaque tâche de mappage effectue une copie binaire de la source vers le récepteur.
L’activité de copie prend en charge l’utilisation de DistCp pour copier des fichiers en l’état dans le stockage d’objets Azure Blob (y compris copie intermédiaire) ou le stockage de lac de données Azure. Dans ce cas, DistCp peut tirer parti de la puissance de votre cluster au lieu de s’exécuter sur le runtime d’intégration auto-hébergé. Utiliser DistCp permet que le débit de la copie soit ainsi amélioré, en particulier si votre cluster est très puissant. Selon la configuration, l’activité Copy construit automatiquement une commande DistCp, l’envoie à votre cluster Hadoop et surveille l’état de la copie.
Prérequis
Pour utiliser DistCp pour copier des fichiers en l’état de HDFS vers le stockage de blob Azure (y compris une copie intermédiaire) ou du lac de données Azure, assurez-vous que votre cluster Hadoop présente la configuration requise suivante :
Les services MapReduce et YARN sont activés.
YARN version 2.5 ou ultérieure.
Le serveur HDFS est intégré à votre banque de données cible : Stockage Blob Azure ou Azure Data Lake Store (ADLS Gen1) :
- Le système de fichiers d’objet blob Azure est pris en charge en mode natif depuis Hadoop 2.7. Vous devez uniquement spécifier le chemin d’accès JAR dans la configuration de l’environnement Hadoop.
- Le système de fichiers d’Azure Data Lake Store est empaqueté depuis Hadoop 3.0.0-alpha1. Si la version de votre cluster Hadoop est antérieure à cette version, vous devez importer manuellement les packages JAR associés à Azure Data Lake Store (azure-datalake-store.jar) dans le cluster à partir d’ici et spécifier le chemin d’accès du fichier JAR dans la configuration de l’environnement Hadoop.
Préparez un dossier temporaire dans HDFS. Ce dossier temporaire est utilisé pour stocker le script d'interpréteur de commandes DistCp afin qu’il occupe un espace exprimable en Ko.
Assurez-vous que le compte d’utilisateur fourni dans le service lié HDFS a l’autorisation d’effectuer les opérations suivantes :
- Soumettez une application dans YARN.
- Créez un sous-dossier et écrivez/lisez les fichiers du dossier Temp.
Configurations
Pour voir les exemples et les configurations liés à DistCp, consultez la section HDFS en tant que source.
Utilisation de l’authentification Kerberos pour le connecteur HDFS
Il existe deux options pour configurer l’environnement local afin d’utiliser l’authentification Kerberos avec le connecteur HDFS. Vous pouvez choisir celle qui correspond mieux à votre situation.
- Option 1 : Joindre un ordinateur exécutant le runtime d’intégration auto-hébergé dans le domaine Kerberos
- Option n°2 : Activer l’approbation mutuelle entre le domaine Windows et le domaine Kerberos
Quelle que soit l’option, veillez à activer webhdfs pour le cluster Hadoop :
Créez le principal HTTP et le keytab pour webhdfs.
Important
Le principal HTTP Kerberos doit commencer par « HTTP/ » conformément à la spécification HTTP SPNEGO de Kerberos. Pour plus d’informations, cliquez ici.
Kadmin> addprinc -randkey HTTP/<namenode hostname>@<REALM.COM> Kadmin> ktadd -k /etc/security/keytab/spnego.service.keytab HTTP/<namenode hostname>@<REALM.COM>
Options de configuration HDFS : ajoutez les trois propriétés suivantes dans
hdfs-site.xml
.<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.web.authentication.kerberos.principal</name> <value>HTTP/_HOST@<REALM.COM></value> </property> <property> <name>dfs.web.authentication.kerberos.keytab</name> <value>/etc/security/keytab/spnego.service.keytab</value> </property>
Option 1 : Joindre un ordinateur exécutant le runtime d’intégration auto-hébergé dans le domaine Kerberos
Spécifications
- L’ordinateur exécutant le runtime d’intégration auto-hébergé doit joindre le domaine Kerberos et ne peut pas joindre un domaine Windows.
Comment configurer
Sur le serveur du centre de distribution de clés Kerberos :
Créez un principal et spécifiez le mot de passe.
Important
Le nom d’utilisateur ne doit pas contenir le nom d’hôte.
Kadmin> addprinc <username>@<REALM.COM>
Sur un ordinateur exécutant le runtime d’intégration auto-hébergé :
Exécutez l’utilitaire Ksetup pour configurer le serveur et le domaine du centre de distribution de clés Kerberos.
L’ordinateur doit être configuré en tant que membre d’un groupe de travail, car un domaine Kerberos est différent d’un domaine Windows. Vous pouvez obtenir cette configuration en définissant le domaine Kerberos et en ajoutant un serveur KDC en exécutant les commandes suivantes. Remplacez REALM.COM par votre propre nom de domaine.
C:> Ksetup /setdomain REALM.COM C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
Après avoir exécuté ces commandes, redémarrez l’ordinateur.
Vérifiez la configuration avec la commande
Ksetup
. La sortie doit être semblable à :C:> Ksetup default realm = REALM.COM (external) REALM.com: kdc = <your_kdc_server_address>
Dans votre espace de travail Data Factory ou Synapse :
- Configurez le connecteur HDFS à l’aide de l’authentification Windows avec votre nom principal Kerberos et le mot de passe pour vous connecter à la source de données HDFS. Vérifiez les détails de configuration dans la section Propriétés du service lié HDFS.
Option 2 : Activer l’approbation mutuelle entre le domaine Windows et le domaine Kerberos
Spécifications
- L’ordinateur exécutant le runtime d’intégration auto-hébergé doit joindre un domaine Windows.
- Vous avez besoin d’autorisations pour mettre à jour les paramètres du contrôleur de domaine.
Comment configurer
Notes
Remplacez REALM.COM et AD.COM dans le didacticiel suivant par votre propre nom de domaine et de contrôleur de domaine.
Sur le serveur du centre de distribution de clés Kerberos :
Modifiez la configuration KDC dans le fichier krb5.conf afin de permettre au KDC d’approuver le domaine Windows faisant référence au modèle de configuration suivant. Par défaut, la configuration se trouve dans /etc/krb5.conf.
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = REALM.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] REALM.COM = { kdc = node.REALM.COM admin_server = node.REALM.COM } AD.COM = { kdc = windc.ad.com admin_server = windc.ad.com } [domain_realm] .REALM.COM = REALM.COM REALM.COM = REALM.COM .ad.com = AD.COM ad.com = AD.COM [capaths] AD.COM = { REALM.COM = . }
Après avoir configuré le fichier, redémarrez le service KDC.
Préparez un principal nommé krbtgt/REALM.COM@AD.COM dans le serveur KDC à l’aide de la commande suivante :
Kadmin> addprinc krbtgt/REALM.COM@AD.COM
Dans le fichier de configuration du service HDFS hadoop.security.auth_to_local, ajoutez
RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//
.
Sur le contrôleur de domaine :
Exécutez les commandes
Ksetup
suivantes pour ajouter une entrée de domaine :C:> Ksetup /addkdc REALM.COM <your_kdc_server_address> C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
Établissez l’approbation du domaine Windows pour le domaine Kerberos. [password] correspond au mot de passe pour le principal krbtgt/REALM.COM@AD.COM.
C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]
Sélectionnez l’algorithme de chiffrement utilisé dans Kerberos.
a. Sélectionnez Gestionnaire de serveur>Gestion des stratégies de groupe>Domaine>Objets de stratégie de groupe>Stratégie de domaine par défaut ou actif, puis sélectionnez Modifier.
b. Dans le volet Éditeur de gestion des stratégies de groupe, accédez à Configuration de l’ordinateur>Stratégies>Paramètres Windows>Paramètres de sécurité>Stratégies locales>Options de sécurité, puis configurez Sécurité réseau : Configurer les types de chiffrement autorisés pour Kerberos.
c. Sélectionnez l’algorithme de chiffrement à utiliser lorsque vous vous connectez au serveur KDC. Vous pouvez sélectionner toutes les options.
d. Utilisez la commande
Ksetup
pour spécifier l’algorithme de chiffrement à utiliser dans le domaine spécifié.C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
Créez le mappage entre le compte de domaine et le principal Kerberos pour utiliser le principal Kerberos dans le domaine Windows.
a. Sélectionnez Outils d’administration>Utilisateurs et ordinateurs Active Directory.
b. Configurez les fonctionnalités avancées en sélectionnant Afficher>Fonctionnalités avancées.
c. Dans le volet Fonctionnalités avancées, faites un clic droit sur le compte sur lequel vous souhaitez créer des mappages et, dans le volet Mappages des noms, sélectionnez l’onglet Noms Kerberos.
d. Ajoutez un principal provenant du domaine.
Sur un ordinateur exécutant le runtime d’intégration auto-hébergé :
Exécutez les commandes
Ksetup
suivantes pour ajouter une entrée de domaine.C:> Ksetup /addkdc REALM.COM <your_kdc_server_address> C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
Dans votre espace de travail Data Factory ou Synapse :
- Configurez le connecteur HDFS à l’aide de l’authentification Windows avec votre compte de domaine ou le principal Kerberos pour vous connecter à la source de données HDFS. Pour les détails de configuration, consultez la section Propriétés du service lié HDFS.
Propriétés de l’activité Lookup
Pour obtenir des informations sur les propriétés de l’activité de recherche, consultez Activité de recherche.
Propriétés de l’activité Delete
Pour obtenir des informations sur les propriétés de l’activité Delete, consultez Activité Delete.
Modèles hérités
Notes
Les modèles suivants sont toujours pris en charge tels quels à des fins de compatibilité descendante. Nous vous recommandons d’utiliser le nouveau modèle abordé précédemment, car l’interface utilisateur de création a basculé vers la génération du nouveau modèle.
Modèle de jeu de données hérité
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type du jeu de données doit être définie sur FileShare | Oui |
folderPath | Chemin du dossier. Un filtre de caractères génériques est pris en charge. Les caractères génériques autorisés sont * (correspond à zéro ou plusieurs caractères) et ? (correspond à zéro ou un caractère) ; utilisez ^ en guise d’échappement si votre nom de fichier contient effectivement ce caractère d’échappement ou générique. Exemples : dossier_racine/sous-dossier/ ; consultez d’autres exemples dans Exemples de filtres de dossier et de fichier. |
Oui |
fileName | Filtre de noms ou de caractères génériques pour les fichiers sous le « folderPath » spécifié. Si vous ne spécifiez pas de valeur pour cette propriété, le jeu de données pointe vers tous les fichiers du dossier. Dans le filtre, les caractères génériques autorisés sont * (correspond à zéro caractère ou plus) et ? (correspond à zéro ou un caractère).- Exemple 1 : "fileName": "*.csv" - Exemple 2 : "fileName": "???20180427.txt" Utilisez ^ comme caractère d’échappement si le nom réel de votre dossier contient un caractère générique ou ce caractère d’échappement. |
Non |
modifiedDatetimeStart | Les fichiers sont filtrés en fonction de l’attribut Dernière modification. Les fichiers sont sélectionnés si leur dernière heure de modification est supérieure ou égale à modifiedDatetimeStart et inférieure à modifiedDatetimeEnd . L’heure est appliquée au fuseau horaire UTC au format 2018-12-01T05:00:00Z. Sachez que les performances globales du déplacement des données sont affectées par l’activation de ce paramètre lorsque vous souhaitez filtrer des fichiers parmi de grandes quantités de fichiers. Les propriétés peuvent être NULL, ce qui signifie qu’aucun filtre d’attribut de fichier n’est appliqué au jeu de données. Lorsque modifiedDatetimeStart a une valeur DateHeure, mais que modifiedDatetimeEnd est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est supérieur ou égal à la valeur DateHeure sont sélectionnés. Lorsque modifiedDatetimeEnd a une valeur DateHeure, mais que modifiedDatetimeStart est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est inférieur à la valeur DateHeure sont sélectionnés. |
Non |
modifiedDatetimeEnd | Les fichiers sont filtrés en fonction de l’attribut Dernière modification. Les fichiers sont sélectionnés si leur dernière heure de modification est supérieure ou égale à modifiedDatetimeStart et inférieure à modifiedDatetimeEnd . L’heure est appliquée au fuseau horaire UTC au format 2018-12-01T05:00:00Z. Sachez que les performances globales du déplacement des données sont affectées par l’activation de ce paramètre lorsque vous souhaitez filtrer des fichiers parmi de grandes quantités de fichiers. Les propriétés peuvent être NULL, ce qui signifie qu’aucun filtre d’attribut de fichier n’est appliqué au jeu de données. Lorsque modifiedDatetimeStart a une valeur DateHeure, mais que modifiedDatetimeEnd est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est supérieur ou égal à la valeur DateHeure sont sélectionnés. Lorsque modifiedDatetimeEnd a une valeur DateHeure, mais que modifiedDatetimeStart est NULL, cela signifie que les fichiers dont l’attribut de dernière modification est inférieur à la valeur DateHeure sont sélectionnés. |
Non |
format | Si vous souhaitez copier des fichiers en l’état entre des magasins de fichiers (copie binaire), ignorez la section Format dans les deux définitions de jeu de données d’entrée et de sortie. Si vous voulez analyser des fichiers dans un format spécifique, les types de format de fichier suivants sont pris en charge : TextFormat, JsonFormat, AvroFormat, OrcFormat et ParquetFormat. Définissez la propriété type située sous Format sur l’une de ces valeurs. Pour en savoir plus, voir les sections Format Text, Format JSON, Format Avro, Format ORC et Format Parquet. |
Non (uniquement pour un scénario de copie binaire) |
compression | Spécifiez le type et le niveau de compression pour les données. Pour plus d’informations, voir Formats de fichier et de codecs de compression pris en charge. Types pris en charge : GZip, Deflate, BZip2 et ZipDeflate. Niveaux pris en charge : Optimal et Fastest. |
Non |
Conseil
Pour copier tous les fichiers d’un dossier, spécifiez folderPath uniquement.
Pour copier un seul fichier avec un nom donné, spécifiez folderPath avec la partie dossier et fileName avec le nom du fichier.
Pour copier un sous-ensemble de fichiers d’un dossier, spécifiez folderPath avec la partie dossier et fileName avec le filtre de caractères génériques.
Exemple :
{
"name": "HDFSDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<HDFS linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "folder/subfolder/",
"fileName": "*",
"modifiedDatetimeStart": "2018-12-01T05:00:00Z",
"modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "\n"
},
"compression": {
"type": "GZip",
"level": "Optimal"
}
}
}
}
Modèle hérité de la source d’activité de copie
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type de la source de l’activité de copie doit être définie sur HdfsSource. | Oui |
recursive | Indique si les données sont lues de manière récursive à partir des sous-dossiers ou uniquement du dossier spécifié. Lorsque l’option « recursive » est définie sur true et que le récepteur est un magasin basé sur un fichier, un dossier vide ou un sous-dossier n’est pas copié ou créé sur le récepteur. Les valeurs autorisées sont true (par défaut) et false. |
Non |
distcpSettings | Groupe de propriétés lorsque vous utilisez HDFS DistCp. | Non |
resourceManagerEndpoint | Point de terminaison de YARN Resource Manager | Oui, en cas d’utilisation de DistCp |
tempScriptPath | Chemin d’accès du dossier utilisé pour stocker le script de commande DistCp temporaire. Le fichier de script est généré et supprimé une fois le travail de copie terminé. | Oui, en cas d’utilisation de DistCp |
distcpOptions | Options supplémentaires fournies à la commande DistCp. | Non |
maxConcurrentConnections | La limite supérieure de connexions simultanées établies au magasin de données pendant l’exécution de l’activité. Spécifiez une valeur uniquement lorsque vous souhaitez limiter les connexions simultanées. | Non |
Exemple : Source HDFS dans une activité de copie avec DistCp
"source": {
"type": "HdfsSource",
"distcpSettings": {
"resourceManagerEndpoint": "resourcemanagerendpoint:8088",
"tempScriptPath": "/usr/hadoop/tempscript",
"distcpOptions": "-m 100"
}
}
Contenu connexe
Pour obtenir la liste des magasins de données pris en charge en tant que sources ou récepteurs par l'activité de copie, consultez les magasins de données pris en charge.