Copiare dati da server HDFS tramite Azure Data Factory o Synapse Analytics
SI APPLICA A: Azure Data Factory Azure Synapse Analytics
Suggerimento
Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!
Questo articolo illustra come copiare dati dal server Hadoop Distributed File System (HDFS). Per altre informazioni, vedere gli articoli introduttivi per Azure Data Factory e Synapse Analytics.
Funzionalità supportate
Questo connettore HDFS è supportato per le funzionalità seguenti:
Funzionalità supportate | IR |
---|---|
Attività Copy (origine/-) | ① ② |
Attività Lookup | ① ② |
Attività Delete | ① ② |
① Azure Integration Runtime ② Runtime di integrazione self-hosted
In particolare, il connettore HDFS supporta:
- La copia di file usando l'autenticazione di Windows (Kerberos) o Anonima.
- La copia di file usando il protocollo webhdfs o il supporto per DistCp predefinito.
- La copia di file così come sono oppure l'analisi o la generazione di file con i formati di file e i codec di compressione supportati.
Prerequisiti
Se l'archivio dati si trova all'interno di una rete locale, una rete virtuale di Azure o un cloud privato virtuale di Amazon, è necessario configurare un runtime di integrazione self-hosted per connettersi.
Se l'archivio dati è un servizio dati del cloud gestito, è possibile usare Azure Integration Runtime. Se l'accesso è limitato solo agli indirizzi IP approvati nelle regole del firewall, è possibile aggiungere IP di Azure Integration Runtime nell'elenco Consentiti.
È anche possibile usare la funzionalitàruntime di integrazione della rete virtuale gestita in Azure Data Factory per accedere alla rete locale senza installare e configurare un runtime di integrazione self-hosted.
Per altre informazioni sui meccanismi di sicurezza di rete e sulle opzioni supportate da Data Factory, vedere strategie di accesso ai dati.
Nota
Assicurarsi che il runtime di integrazione possa accedere a tutti i [server del nodo dei nomi]: [porta del nodo dei nomi] e [server del nodo dati]: [porta del nodo dati] del cluster Hadoop. La [porta del nodo dei nomi] predefinita è 50070 e la [porta del nodo dati] predefinita è 50075.
Operazioni preliminari
Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:
- Strumento Copia dati
- Il portale di Azure
- .NET SDK
- SDK di Python
- Azure PowerShell
- API REST
- Modello di Azure Resource Manager
Creare un servizio collegato a HDFS usando l'interfaccia utente
Usare la procedura seguente per creare un servizio collegato a HDFS nell'interfaccia utente del portale di Azure.
Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:
Cercare HDFS e selezionare il connettore HDFS.
Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.
Dettagli di configurazione del connettore
Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di Data Factory specifiche per HDFS.
Proprietà del servizio collegato
Per il servizio collegato HDFS sono supportate le proprietà seguenti:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type deve essere impostata su Hdfs. | Sì |
URL. | URL di HDFS | Sì |
authenticationType | I valori consentiti sono: Anonima o Windows. Per configurare l'ambiente locale, vedere la sezione Usare l'autenticazione Kerberos per il connettore HDFS. |
Sì |
userName | Nome utente per l'autenticazione di Windows. Per l'autenticazione Kerberos, specificare <nome utente>@<dominio>.com. | Sì (per l'autenticazione di Windows) |
password | Password per l'autenticazione di Windows. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault. | Sì (per l'autenticazione di Windows) |
connectVia | Runtime di integrazione da usare per la connessione all'archivio dati. Per altre informazioni, vedere la sezione Prerequisiti. Se il runtime di integrazione non è specificato, il servizio usa Azure Integration Runtime per impostazione predefinita. | No |
Esempio: uso dell'autenticazione anonima
{
"name": "HDFSLinkedService",
"properties": {
"type": "Hdfs",
"typeProperties": {
"url" : "http://<machine>:50070/webhdfs/v1/",
"authenticationType": "Anonymous",
"userName": "hadoop"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Esempio: uso dell'autenticazione di 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"
}
}
}
Proprietà del set di dati
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione di set di dati, vedere l'articolo Set di dati.
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
- Formato Avro
- Formato binario
- Formato di testo delimitato
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Le proprietà seguenti sono supportate per HDFS nelle impostazioni location
nel set di dati basato sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type in location nel set di dati deve essere impostata su HdfsLocation. |
Sì |
folderPath | Percorso della cartella. Se si vuole usare un carattere jolly per filtrare la cartella, ignorare questa impostazione e specificare il percorso nelle impostazioni dell'origine dell'attività. | No |
fileName | Nome del file nel percorso della cartella specificato. Se si vuole usare un carattere jolly per filtrare i file, ignorare questa impostazione e specificare ilo nome di file nelle impostazioni dell'origine dell'attività. | No |
Esempio:
{
"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"
}
}
}
Proprietà dell'attività di copia
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere Pipeline e attività. Questa sezione presenta un elenco delle proprietà supportate dall'origine HDFS.
HDFS come origine
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
- Formato Avro
- Formato binario
- Formato di testo delimitato
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Le proprietà seguenti sono supportate per HDFS nelle impostazioni storeSettings
nell'origine di copia basata sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type in storeSettings deve essere impostata su HdfsReadSettings. |
Sì |
Individuare i file da copiare | ||
OPZIONE 1: percorso statico |
Copia dal percorso della cartella o del file specificato nel set di dati. Se si vogliono copiare tutti i file da una cartella, specificare anche wildcardFileName come * . |
|
OPZIONE 2: carattere jolly - wildcardFolderPath |
Percorso della cartella con caratteri jolly per filtrare le cartelle di origine. I caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per applicare una sequenza di escape se il nome effettivo della cartella include caratteri jolly o tale carattere di escape. Per altri esempi, vedere Esempi di filtro file e cartelle. |
No |
OPZIONE 2: carattere jolly - wildcardFileName |
Nome del file con caratteri jolly nel percorso folderPath/wildcardFolderPath specificato per filtrare i file di origine. I caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per applicare una sequenza di escape se il nome effettivo del file include caratteri jolly o questo carattere di escape. Per altri esempi, vedere Esempi di filtro file e cartelle. |
Sì |
OPZIONE 3: un elenco di file - fileListPath |
Indica di copiare un set di file specificato. Puntare a un file di testo che include un elenco di file da copiare, un file per riga, con il percorso relativo del percorso configurato nel set di dati. Quando si usa questa opzione, non specificare il nome del file nel set di dati. Per altri esempi, vedere Esempi di elenco di file. |
No |
Impostazioni aggiuntive | ||
recursive | Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Quando recursive è impostata su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non viene copiata né creata nel sink. I valori consentiti sono true (predefinito) e false. Questa proprietà non è applicabile quando si configura fileListPath . |
No |
deleteFilesAfterCompletion | Indica se i file binari verranno eliminati dall'archivio di origine dopo il passaggio all'archivio di destinazione. L'eliminazione dei file avviene un file alla volta, quindi quando l'attività Copy non riesce, si vedranno alcuni file già copiati nella destinazione ed eliminati dall'origine, mentre altri rimangono ancora nell'archivio di origine. Questa proprietà è valida solo nello scenario di copia dei file binari. Il valore predefinito è false. |
No |
modifiedDatetimeStart | I file vengono filtrati in base all'attributo Ultima modifica. I file vengono selezionati se l'ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd . Data e ora vengono applicate in base al fuso orario UTC nel formato 2018-12-01T05:00:00Z. Le proprietà possono essere NULL, a indicare che al set di dati non è applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui attributo di ultima modifica è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui attributo di ultima modifica è minore del valore datetime.Questa proprietà non è applicabile quando si configura fileListPath . |
No |
modifiedDatetimeEnd | Come sopra. | |
enablePartitionDiscovery | Per i file partizionati, specificare se analizzare le partizioni dal percorso del file e aggiungerle come colonne di origine aggiuntive. I valori consentiti sono false (predefinito) e true. |
No |
partitionRootPath | Quando l'individuazione delle partizioni è abilitata, specificare il percorso radice assoluto per leggere le cartelle partizionate come colonne di dati. Se non è specificato, per impostazione predefinita, - Quando si usa il percorso del file nel set di dati o nell'elenco di file nell'origine, il percorso radice della partizione è il percorso configurato nel set di dati. - Quando si usa il filtro delle cartelle con caratteri jolly, il percorso radice della partizione è il percorso secondario prima del primo carattere jolly. Si supponga, ad esempio, di configurare il percorso nel set di dati come "root/folder/year=2020/month=08/day=27": - Se si specifica il percorso radice della partizione come "root/folder/year=2020", l'attività Copy genererà altre due colonne month e day rispettivamente con il valore "08" e "27", oltre alle colonne all'interno dei file.- Se il percorso radice della partizione non è specificato, non verrà generata alcuna colonna aggiuntiva. |
No |
maxConcurrentConnections | Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. | No |
Impostazioni DistCp | ||
distcpSettings | Gruppo di proprietà da usare quando si usa HDFS DistCp. | No |
resourceManagerEndpoint | Endpoint YARN (Yet Another Resource Negotiator) | Sì, se si usa DistCp |
tempScriptPath | Percorso di cartella usato per archiviare lo script di comandi DistCp temporaneo. Il file di script viene generato e verrà rimosso al termine del processo di copia. | Sì, se si usa DistCp |
distcpOptions | Opzioni aggiuntive per il comando DistCp. | No |
Esempio:
"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>"
}
}
}
]
Esempi di filtro file e cartelle
Questa sezione descrive il comportamento risultante se si usa un filtro con caratteri jolly con il percorso della cartella e il nome del file.
folderPath | fileName | recursive | Struttura delle cartelle di origine e risultato del filtro (i file in grassetto sono stati recuperati) |
---|---|---|---|
Folder* |
(vuoto, usare valore predefinito) | false | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Folder* |
(vuoto, usare valore predefinito) | true | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Folder* |
*.csv |
false | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Folder* |
*.csv |
true | CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Esempi di elenco di file
Questa sezione descrive il comportamento risultante dall'uso del percorso di elenco di file nell'origine dell'attività Copy. Si presuppone che sia presente la struttura di cartelle di origine seguente e che si vogliano copiare i file in grassetto:
Esempio di struttura di origine | Contenuto in FileListToCopy.txt | Impostazione |
---|---|---|
root CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv Metadati UFX FileListToCopy.txt |
File1.csv Sottocartella1/File3.csv Sottocartella1/File5.csv |
Nel set di dati: - Percorso cartella: root/FolderA Nell'origine dell'attività Copy: - Percorso elenco file: root/Metadata/FileListToCopy.txt Il percorso dell'elenco di file fa riferimento a un file di testo nello stesso archivio dati che include un elenco di file da copiare, un file per riga con il percorso relativo del percorso configurato nel set di dati. |
Usare DistCp per copiare dati da HDFS
DistCp è uno strumento da riga di comando nativo di Hadoop per eseguire una copia distribuita in un cluster Hadoop. Quando si esegue un comando in DistCp, vengono elencati innanzitutto tutti i file da copiare e quindi vengono creati diversi processi di mapping nel cluster Hadoop. Ogni processo di mapping esegue una copia binaria dall'origine al sink.
L'attività Copy supporta l'uso di DistCp per copiare i file così come sono nell'archiviazione BLOB di Azure (inclusa la copia di staging) o in un archivio Azure Data Lake. In questo caso, DistCp può sfruttare la potenza del cluster anziché eseguire il runtime di integrazione self-hosted. L'uso di DistCp offre miglioramenti in termini di velocità di copia particolarmente significativi se il cluster è molto potente. In base alla configurazione, l'attività Copy crea automaticamente un comando DistCp, lo invia al cluster Hadoop e mantiene monitorato lo stato della copia.
Prerequisiti
Per usare DistCp per copiare file così come sono da HDFS nell'archiviazione BLOB di Azure (inclusa una copia di staging) o nell'archivio Azure Data Lake, assicurarsi che il cluster Hadoop soddisfi i requisiti seguenti:
I servizi MapReduce e YARN sono abilitati.
La versione di YARN è 2.5 o successiva.
Il server HDFS è integrato con l'archivio dati di destinazione: archiviazione BLOB di Azure o Azure Data Lake Storage (ADLS Gen1):
- Il FileSystem di BLOB di Azure è supportato in modo nativo a partire da Hadoop 2.7. È necessario specificare solo il percorso JAR nella configurazione dell'ambiente Hadoop.
- Il FileSystem di Azure Data Lake Store è disponibile come pacchetto a partire da Hadoop 3.0.0-alpha1. Se la versione del cluster Hadoop è precedente, è necessario importare manualmente nel cluster i pacchetti JAR correlati ad Azure Data Lake Storage (azure-datalake-store.jar) da qui e specificare il percorso del file JAR nella configurazione dell'ambiente Hadoop.
Preparare una cartella temporanea in HDFS. Questa cartella temporanea viene usata per archiviare uno script della shell DistCp, in modo che occupi solo qualche KB di spazio.
Assicurarsi che l'account utente fornito nel servizio collegato HDFS abbia l'autorizzazione per:
- Inviare un'applicazione in YARN.
- Creare una sottocartella e leggere/scrivere file nella cartella temporanea.
Configurazioni
Per informazioni sulle configurazioni e gli esempi correlati a DistCp, vedere la sezione HDFS come origine.
Usare l'autenticazione Kerberos per il connettore HDFS
Sono disponibili due opzioni per configurare l'ambiente locale per l'uso dell'autenticazione Kerberos per il connettore HDFS. È possibile scegliere quella più adatto alla propria situazione.
- Opzione 1: aggiungere un computer del runtime di integrazione self-hosted nell'area di autenticazione di Kerberos
- Opzione 2: Abilitare il trust reciproco tra il dominio Windows e l'area di autenticazione Kerberos
Per entrambe le opzioni, assicurarsi di attivare webhdfs per il cluster Hadoop:
Creare l'entità di sicurezza HTTP e il file keytab per webhdfs.
Importante
L'entità di sicurezza Kerberos HTTP deve iniziare con "HTTP/" in base alla specifica HTTP SPNEGO Kerberos. Altre informazioni sono disponibili qui.
Kadmin> addprinc -randkey HTTP/<namenode hostname>@<REALM.COM> Kadmin> ktadd -k /etc/security/keytab/spnego.service.keytab HTTP/<namenode hostname>@<REALM.COM>
Opzioni di configurazione di HDFS: aggiungere le tre proprietà seguenti in
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>
Opzione 1: aggiungere un computer del runtime di integrazione self-hosted nell'area di autenticazione di Kerberos
Requisiti
- Il computer del runtime di integrazione self-hosted deve essere aggiunto all'area di autenticazione di Kerberos e non può essere aggiunto a un dominio di Windows.
Modalità di configurazione
Nel server KDC:
Creare un'entità di sicurezza e specificare la password.
Importante
Il nome utente non deve contenere il nome host.
Kadmin> addprinc <username>@<REALM.COM>
Nel computer del runtime di integrazione self-hosted:
Eseguire l'utilità Ksetup per configurare l'area di autenticazione e il server Centro distribuzione chiavi (KDC) Kerberos.
Il computer deve essere configurato come membro di un gruppo di lavoro poiché un'area di autenticazione di Kerberos è diversa da un dominio di Windows. Per ottenere questa configurazione, impostare l'area di autenticazione di Kerberos e aggiungere un server KDC eseguendo i comandi seguenti. Sostituire REALM.COM con il nome della propria area di autenticazione.
C:> Ksetup /setdomain REALM.COM C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
Dopo aver eseguito questi comandi, riavviare il computer.
Verificare la configurazione con il comando
Ksetup
. L'output dovrebbe essere simile al seguente:C:> Ksetup default realm = REALM.COM (external) REALM.com: kdc = <your_kdc_server_address>
Nell'area di lavoro di data factory o Synapse:
- Configurare il connettore HDFS usando l'autenticazione di Windows con il nome e la password dell'entità di sicurezza di Kerberos per connettersi all'origine dati HDFS. Per i dettagli di configurazione, vedere la sezione Proprietà del servizio collegato HDFS.
Opzione 2: Abilitare il trust reciproco tra il dominio Windows e l'area di autenticazione Kerberos
Requisiti
- Il computer del runtime di integrazione self-hosted deve essere aggiunto a un dominio di Windows.
- È necessaria l'autorizzazione per aggiornare le impostazioni del controller di dominio.
Modalità di configurazione
Nota
Sostituire REALM.COM e AD.COM nell'esercitazione seguente con il nome della area di autenticazione e il proprio controller di dominio.
Nel server KDC:
Modificare la configurazione KDC nel file krb5.conf per far considerare attendibile a KDC il dominio di Windows facendo riferimento al modello di configurazione di seguito. Per impostazione predefinita, la configurazione si trova in /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 = . }
Dopo aver configurato il file, riavviare il servizio KDC.
Preparare un'entità di sicurezza denominata krbtgt/REALM.COM@AD.COM nel server KDC con il comando seguente:
Kadmin> addprinc krbtgt/REALM.COM@AD.COM
Nel file di configurazione del servizio HDFS hadoop.security.auth_to_local aggiungere
RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//
.
Nel controller di dominio:
Eseguire i comandi
Ksetup
seguenti per aggiungere una voce dell'area di autenticazione:C:> Ksetup /addkdc REALM.COM <your_kdc_server_address> C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
Stabilire il trust dal dominio Windows all'area di autenticazione Kerberos. [password] è la password per l'entità di sicurezza krbtgt/REALM.COM@AD.COM.
C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]
Selezionare l'algoritmo di crittografia usato in Kerberos.
a. Selezionare Server Manager>Gestione Criteri di gruppo>Dominio>Oggetti Criteri di gruppo>Criteri dominio attivi o predefiniti e quindi selezionare Modifica.
b. Nel riquadro Editor Gestione Criteri di gruppo selezionare Configurazione computer>Criteri>Impostazioni di Windows>Impostazioni di sicurezza>Criteri locali>Opzioni di sicurezza e quindi configurare Sicurezza di rete: configura tipi di crittografia consentiti per Kerberos.
c. Selezionare l'algoritmo di crittografia che si vuole usare per connettersi al server KDC. È possibile selezionare tutte le opzioni.
d. Utilizzare il comando
Ksetup
per specificare l'algoritmo di crittografia da usare nell'area di autenticazione specificata.C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
Creare il mapping tra l'account di dominio e l'entità di sicurezza Kerberos, in modo da poter usare l'entità di sicurezza Kerberos nel dominio di Windows.
a. Selezionare Strumenti di amministrazione>Utenti e computer di Active Directory.
b. Configurare le funzionalità avanzate selezionando Visualizza>Funzionalità avanzate.
c. Nel riquadro Funzionalità avanzate fare clic con il pulsante destro del mouse sull'account per cui si vogliono creare i mapping e nel riquadro Mapping dei nomi selezionare la scheda Nomi Kerberos.
d. Aggiungere un'entità di sicurezza dall'area di autenticazione.
Nel computer del runtime di integrazione self-hosted:
Eseguire i comandi
Ksetup
seguenti per aggiungere una voce dell'area di autenticazione.C:> Ksetup /addkdc REALM.COM <your_kdc_server_address> C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
Nell'area di lavoro di data factory o Synapse:
- Configurare il connettore HDFS usando l'autenticazione di Windows con l'account di dominio o l'entità di sicurezza Kerberos per connettersi all'origine dati HDFS. Per i dettagli di configurazione, vedere la sezione Proprietà del servizio collegato HDFS.
Proprietà dell'attività Lookup
Per informazioni sulle proprietà dell'attività Lookup, vedere Attività Lookup.
Proprietà dell'attività Delete
Per informazioni sulle proprietà dell'attività Delete, vedere Attività Delete.
Modalità legacy
Nota
I modelli seguenti sono ancora supportati così come sono per la compatibilità con le versioni precedenti. È consigliabile usare il nuovo modello descritto in precedenza, perché l'interfaccia utente di creazione è passata alla generazione del nuovo modello.
Modello di set di dati legacy
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type del set di dati deve essere impostata su FileShare | Sì |
folderPath | Percorso della cartella. È supportato un filtro con caratteri jolly. I caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per applicare una sequenza di escape se il nome effettivo del file include caratteri jolly o questo carattere di escape. Esempi: cartellaradice/sottocartella/. Vedere altri esempi in Esempi di filtro file e cartelle. |
Sì |
fileName | Filtro con nome o carattere jolly per i file nell'elemento "folderPath" specificato. Se non si specifica alcun valore per questa proprietà, il set di dati punta a tutti i file nella cartella. Per un filtro, i caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo).- Esempio 1: "fileName": "*.csv" - Esempio 2: "fileName": "???20180427.txt" Usare ^ per applicare una sequenza di escape se il nome effettivo della cartella include caratteri jolly o tale carattere di escape. |
No |
modifiedDatetimeStart | I file vengono filtrati in base all'attributo Ultima modifica. I file vengono selezionati se l'ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd . Data e ora vengono applicate in base al fuso orario UTC nel formato 2018-12-01T05:00:00Z. Tenere presente che le prestazioni complessive dello spostamento dei dati saranno influenzate dall'abilitazione di questa impostazione quando si vuole applicare un filtro di file a un numero elevato di file. Le proprietà possono essere NULL, a indicare che al set di dati non è applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui attributo di ultima modifica è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui attributo di ultima modifica è minore del valore datetime. |
No |
modifiedDatetimeEnd | I file vengono filtrati in base all'attributo Ultima modifica. I file vengono selezionati se l'ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd . Data e ora vengono applicate in base al fuso orario UTC nel formato 2018-12-01T05:00:00Z. Tenere presente che le prestazioni complessive dello spostamento dei dati saranno influenzate dall'abilitazione di questa impostazione quando si vuole applicare un filtro di file a un numero elevato di file. Le proprietà possono essere NULL, a indicare che al set di dati non è applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui attributo di ultima modifica è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui attributo di ultima modifica è minore del valore datetime. |
No |
format | Per copiare i file così come sono tra archivi basati su file (copia binaria), è possibile ignorare la sezione del formato nelle definizioni dei set di dati di input e di output. Se si vuole analizzare file con un formato specifico, sono supportati i tipi di formato seguenti: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat. Impostare la proprietà type nell'area format su uno di questi valori. Per altre informazioni, vedere le sezioni Formato testo, Formato JSON, Formato AVRO, Formato OCR e Formato Parquet. |
No (solo per uno scenario di copia binaria) |
compressione | Specificare il tipo e il livello di compressione dei dati. Per altre informazioni, vedere l'articolo sui formati di file supportati e i codec di compressione. I tipi supportati sono: Gzip, Deflate, Bzip2 e ZipDeflate. I livelli supportati sono Ottimale e Più veloce. |
No |
Suggerimento
Per copiare tutti i file in una cartella, specificare solo folderPath.
Per copiare un singolo file con un nome specificato, specificare folderPath con il percorso della cartella e fileName con il nome del file.
Per copiare un subset di file in una cartella, specificare folderPath con il percorso della cartella e fileName con il filtro con caratteri jolly.
Esempio:
{
"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"
}
}
}
}
Modello di origine dell'attività Copy legacy
Proprietà | Descrizione | Richiesto |
---|---|---|
type | La proprietà type dell'origine dell'attività Copy deve essere impostata su HdfsSource. | Sì |
recursive | Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Quando la proprietà recursive è impostata su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non verrà copiata o creata nel sink. I valori consentiti sono true (predefinito) e false. |
No |
distcpSettings | Il gruppo di proprietà quando si usa HDFS DistCp. | No |
resourceManagerEndpoint | L'endpoint di Resource Manager YARN | Sì, se si usa DistCp |
tempScriptPath | Percorso di cartella usato per archiviare lo script di comandi DistCp temporaneo. Il file di script viene generato e verrà rimosso al termine del processo di copia. | Sì, se si usa DistCp |
distcpOptions | Opzioni aggiuntive per il comando DistCp. | No |
maxConcurrentConnections | Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. | No |
Esempio: origine HDFS nell'attività Copy usando DistCp
"source": {
"type": "HdfsSource",
"distcpSettings": {
"resourceManagerEndpoint": "resourcemanagerendpoint:8088",
"tempScriptPath": "/usr/hadoop/tempscript",
"distcpOptions": "-m 100"
}
}
Contenuto correlato
Per un elenco degli archivi dati supportati come origini e sink dall'attività Copy, vedere gli archivi dati supportati.