Copiare dati da HDFS usando Azure Data FactoryCopy data from HDFS using Azure Data Factory

Questo articolo illustra come copiare dati da HDFS server.This article outlines how to copy data from HDFS server. Per altre informazioni su Azure Data Factory, vedere l'articolo introduttivo.To learn about Azure Data Factory, read the introductory article.

Funzionalità supportateSupported capabilities

Questo connettore HDFS è supportato per le attività seguenti:This HDFS connector is supported for the following activities:

In particolare, il connettore HDFS supporta:Specifically, this HDFS connector supports:

  • La copia di file usando l'autenticazione di Windows (Kerberos) o Anonima.Copying files using Windows (Kerberos) or Anonymous authentication.
  • La copia di file usando il protocollo webhdfs o il supporto per DistCp integrato.Copying files using webhdfs protocol or built-in DistCp support.
  • La copia di file così come sono o l'analisi/generazione di file con i formati di file supportati e i codec di compressione.Copying files as-is or parsing/generating files with the supported file formats and compression codecs.

PrerequisitiPrerequisites

Se l'archivio dati è configurato in uno dei modi seguenti, è necessario configurare un Integration Runtime self-hosted per connettersi a questo archivio dati:If your data store is configured in one of the following ways, you need to set up a Self-hosted Integration Runtime in order to connect to this data store:

  • L'archivio dati si trova all'interno di una rete locale, all'interno di una rete virtuale di Azure o all'interno di un cloud privato virtuale di Amazon.The data store is located inside an on-premises network, inside Azure Virtual Network, or inside Amazon Virtual Private Cloud.
  • L'archivio dati è un servizio dati cloud gestito in cui l'accesso è limitato agli indirizzi IP consentiti nelle regole del firewall.The data store is a managed cloud data service where the access is restricted to IPs whitelisted in the firewall rules.

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.Make sure the Integration Runtime can access to ALL the [name node server]:[name node port] and [data node servers]:[data node port] of the Hadoop cluster. La [porta del nodo dei nomi] predefinita è 50070 e la [porta del nodo dati] predefinita è 50075.Default [name node port] is 50070, and default [data node port] is 50075.

Inizia oraGetting started

È possibile usare l'attività di copia con una pipeline tramite uno degli strumenti o degli SDK seguenti.You can use one of the following tools or SDKs to use the copy activity with a pipeline. Per istruzioni dettagliate, selezionare un collegamento:Select a link for step-by-step instructions:

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di Data Factory specifiche per HDFS.The following sections provide details about properties that are used to define Data Factory entities specific to HDFS.

Proprietà del servizio collegatoLinked service properties

Per il servizio collegato di HDFS sono supportate le proprietà seguenti:The following properties are supported for HDFS linked service:

ProprietàProperty DescriptionDescription ObbligatoriaRequired
typetype La proprietà type deve essere impostata su: Hdfs.The type property must be set to: Hdfs. Yes
urlurl URL di HDFSURL to the HDFS Yes
authenticationTypeauthenticationType I valori consentiti sono: Anonima o Windows.Allowed values are: Anonymous, or Windows.

Per usare l'autenticazione Kerberos per il connettore HDFS, fare riferimento a questa sezione per impostare correttamente l'ambiente locale.To use Kerberos authentication for HDFS connector, refer to this section to set up your on-premises environment accordingly.
Yes
userNameuserName Nome utente per l'autenticazione di WindowsUsername for Windows authentication. Per l'autenticazione Kerberos specificare <username>@<domain>.com.For Kerberos authentication, specify <username>@<domain>.com. Sì (per l'autenticazione di Windows)Yes (for Windows Authentication)
passwordpassword Password per l'autenticazione di WindowsPassword for Windows authentication. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro in Azure Data Factory oppure fare riferimento a un segreto archiviato in Azure Key Vault.Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. Sì (per l'autenticazione di Windows)Yes (for Windows Authentication)
connectViaconnectVia Il runtime di integrazione da usare per la connessione all'archivio dati.The Integration Runtime to be used to connect to the data store. Ulteriori informazioni sono disponibili nella sezione prerequisiti .Learn more from Prerequisites section. Se non diversamente specificato, viene usato il runtime di integrazione di Azure predefinito.If not specified, it uses the default Azure Integration Runtime. NoNo

Esempio: uso dell'autenticazione anonimaExample: using Anonymous authentication

{
    "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 WindowsExample: using Windows authentication

{
    "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 datiDataset properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere l'articolo Set di dati.For a full list of sections and properties available for defining datasets, see the Datasets article.

Azure Data Factory supportano i formati di file seguenti.Azure Data Factory support the following file formats. Fare riferimento a ogni articolo sulle impostazioni basate sul formato.Refer to each article on format-based settings.

Le proprietà seguenti sono supportate per HDFS in impostazioni location nel set di dati basato sul formato:The following properties are supported for HDFS under location settings in format-based dataset:

ProprietàProperty DescriptionDescription ObbligatoriaRequired
typetype La proprietà Type in location nel set di dati deve essere impostata su HdfsLocation.The type property under location in dataset must be set to HdfsLocation. Yes
folderPathfolderPath Percorso della cartella.The path to folder. Se si vuole usare il carattere jolly per filtrare la cartella, ignorare questa impostazione e specificare nelle impostazioni dell'origine dell'attività.If you want to use wildcard to filter folder, skip this setting and specify in activity source settings. NoNo
fileNamefileName Nome del file sotto il folderPath specificato.The file name under the given folderPath. Se si vuole usare il carattere jolly per filtrare i file, ignorare questa impostazione e specificare nelle impostazioni dell'origine dell'attività.If you want to use wildcard to filter files, skip this setting and specify in activity source settings. NoNo

Esempio:Example:

{
    "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"
        }
    }
}

Modello DataSet legacyLegacy dataset model

Nota

Il modello di set di dati seguente è ancora supportato così com'è per la compatibilità con le versioni precedenti.The following dataset model is still supported as-is for backward compatibility. Si consiglia di usare il nuovo modello menzionato nella sezione precedente in futuro e l'interfaccia utente di creazione di ADF ha cambiato la generazione del nuovo modello.You are suggested to use the new model mentioned in above section going forward, and the ADF authoring UI has switched to generating the new model.

ProprietàProperty DescriptionDescription ObbligatoriaRequired
typetype La proprietà type del set di dati deve essere impostata su: FileShareThe type property of the dataset must be set to: FileShare Yes
folderPathfolderPath Percorso della cartella.Path to the folder. I filtri con caratteri jolly sono supportati, i caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per il carattere escape se il nome effettivo del file include caratteri jolly o escape.Wildcard filter is supported, allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual file name has wildcard or this escape char inside.

Esempi: cartellaradice/sottocartella/. Vedere altri esempi in Esempi di filtro file e cartelle.Examples: rootfolder/subfolder/, see more examples in Folder and file filter examples.
Yes
fileNamefileName Filtro con nome o carattere jolly per i file nell'elemento "folderPath" specificato.Name or wildcard filter for the file(s) under the specified "folderPath". Se non si specifica alcun valore per questa proprietà, il set di dati punta a tutti i file nella cartella.If you don't specify a value for this property, the dataset points to all files in the folder.

Per un filtro, i caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo).For filter, allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character).
- Esempio 1: "fileName": "*.csv"- Example 1: "fileName": "*.csv"
- Esempio 2: "fileName": "???20180427.txt"- Example 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.Use ^ to escape if your actual folder name has wildcard or this escape char inside.
NoNo
modifiedDatetimeStartmodifiedDatetimeStart Filtro file basato sull'attributo: data Ultima modifica.Files filter based on the attribute: Last Modified. I file vengono selezionati se l'ora dell'ultima modifica è inclusa nell'intervallo di tempo tra modifiedDatetimeStart e modifiedDatetimeEnd.The files will be selected if their last modified time are within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. L'ora viene applicata con il fuso orario UTC e il formato "2018-12-01T05:00:00Z".The time is applied to UTC time zone in the format of "2018-12-01T05:00:00Z".

Tenere presente che le prestazioni complessive dello spostamento dei dati saranno influenzate dall'abilitazione di questa impostazione quando si desidera eseguire il filtro file da grandi quantità di file.Be aware the overall performance of data movement will be impacted by enabling this setting when you want to do file filter from huge amounts of files.

Le proprietà possono essere NULL che significa che al set di dati non verrà applicato alcun filtro di attributi di file.The properties can be NULL that mean no file attribute filter will be applied to the dataset. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime.When modifiedDatetimeStart has datetime value but modifiedDatetimeEnd is NULL, it means the files whose last modified attribute is greater than or equal with the datetime value will be selected. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui ultimo attributo modificato è minore del valore datetime.When modifiedDatetimeEnd has datetime value but modifiedDatetimeStart is NULL, it means the files whose last modified attribute is less than the datetime value will be selected.
NoNo
modifiedDatetimeEndmodifiedDatetimeEnd Filtro file basato sull'attributo: data Ultima modifica.Files filter based on the attribute: Last Modified. I file vengono selezionati se l'ora dell'ultima modifica è inclusa nell'intervallo di tempo tra modifiedDatetimeStart e modifiedDatetimeEnd.The files will be selected if their last modified time are within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. L'ora viene applicata con il fuso orario UTC e il formato "2018-12-01T05:00:00Z".The time is applied to UTC time zone in the format of "2018-12-01T05:00:00Z".

Tenere presente che le prestazioni complessive dello spostamento dei dati saranno influenzate dall'abilitazione di questa impostazione quando si desidera eseguire il filtro file da grandi quantità di file.Be aware the overall performance of data movement will be impacted by enabling this setting when you want to do file filter from huge amounts of files.

Le proprietà possono essere NULL che significa che al set di dati non verrà applicato alcun filtro di attributi di file.The properties can be NULL that mean no file attribute filter will be applied to the dataset. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime.When modifiedDatetimeStart has datetime value but modifiedDatetimeEnd is NULL, it means the files whose last modified attribute is greater than or equal with the datetime value will be selected. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui ultimo attributo modificato è minore del valore datetime.When modifiedDatetimeEnd has datetime value but modifiedDatetimeStart is NULL, it means the files whose last modified attribute is less than the datetime value will be selected.
NoNo
formatformat 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.If you want to copy files as-is between file-based stores (binary copy), skip the format section in both input and output dataset definitions.

Se si vuole analizzare file con un formato specifico, sono supportati i tipi di formato seguenti: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat.If you want to parse files with a specific format, the following file format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Impostare la proprietà type nell'area format su uno di questi valori.Set the type property under format to one of these values. Per altre informazioni, vedere le sezioni TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat.For more information, see Text Format, Json Format, Avro Format, Orc Format, and Parquet Format sections.
No (solo per uno scenario di copia binaria)No (only for binary copy scenario)
compressionecompression Specificare il tipo e il livello di compressione dei dati.Specify the type and level of compression for the data. Per altre informazioni, vedere l'articolo sui formati di file supportati e i codec di compressione.For more information, see Supported file formats and compression codecs.
I tipi supportati sono GZip, Deflate, BZip2 e ZipDeflate.Supported types are: GZip, Deflate, BZip2, and ZipDeflate.
I livelli supportati sono Ottimale e Più veloce.Supported levels are: Optimal and Fastest.
NoNo

Suggerimento

Per copiare tutti i file in una cartella, specificare solo folderPath.To copy all files under a folder, specify folderPath only.
Per copiare un singolo file con un determinato nome, specificare folderPath con il percorso della cartella e fileName con il nome del file.To copy a single file with a given name, specify folderPath with folder part and fileName with file name.
Per copiare un subset di file in una cartella, specificare folderPath con il percorso della cartella e fileName con il filtro con caratteri jolly.To copy a subset of files under a folder, specify folderPath with folder part and fileName with wildcard filter.

Esempio:Example:

{
    "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"
            }
        }
    }
}

Proprietà dell'attività di copiaCopy activity properties

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline.For a full list of sections and properties available for defining activities, see the Pipelines article. Questa sezione presenta un elenco delle proprietà supportate dall'origine HDFS.This section provides a list of properties supported by HDFS source.

HDFS come origineHDFS as source

Azure Data Factory supportano i formati di file seguenti.Azure Data Factory support the following file formats. Fare riferimento a ogni articolo sulle impostazioni basate sul formato.Refer to each article on format-based settings.

Le proprietà seguenti sono supportate per HDFS in storeSettings impostazioni in origine copia basata sul formato:The following properties are supported for HDFS under storeSettings settings in format-based copy source:

ProprietàProperty DescriptionDescription ObbligatoriaRequired
typetype La proprietà Type in storeSettings deve essere impostata su HdfsReadSetting.The type property under storeSettings must be set to HdfsReadSetting. Yes
ricorsivarecursive Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Si noti che quando la proprietà recursive è impostata su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non viene copiata o creata nel sink.Note that when recursive is set to true and the sink is a file-based store, an empty folder or subfolder isn't copied or created at the sink. I valori consentiti sono true (predefinito) e false.Allowed values are true (default) and false. NoNo
wildcardFolderPathwildcardFolderPath Percorso della cartella con caratteri jolly per filtrare le cartelle di origine.The folder path with wildcard characters to filter source folders.
I caratteri jolly consentiti sono: * (corrisponde a zero o più caratteri) e ? (corrisponde a zero caratteri o a un carattere singolo). Usare ^ come carattere di escape se il nome effettivo della cartella include caratteri jolly o questo carattere di escape.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual folder name has wildcard or this escape char inside.
Vedere altri esempi in Esempi di filtro file e cartelle.See more examples in Folder and file filter examples.
NoNo
wildcardFileNamewildcardFileName Nome file con caratteri jolly sotto il folderPath/wildcardFolderPath specificato per filtrare i file di origine.The file name with wildcard characters under the given folderPath/wildcardFolderPath to filter source files.
I caratteri jolly consentiti sono: * (corrisponde a zero o più caratteri) e ? (corrisponde a zero caratteri o a un carattere singolo). Usare ^ come carattere di escape se il nome effettivo della cartella include caratteri jolly o questo carattere di escape.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual folder name has wildcard or this escape char inside. Vedere altri esempi in Esempi di filtro file e cartelle.See more examples in Folder and file filter examples.
Sì se fileName non è specificato nel DataSetYes if fileName is not specified in dataset
modifiedDatetimeStartmodifiedDatetimeStart Filtro file basato sull'attributo: data Ultima modifica.Files filter based on the attribute: Last Modified. I file vengono selezionati se l'ora dell'ultima modifica è inclusa nell'intervallo di tempo tra modifiedDatetimeStart e modifiedDatetimeEnd.The files will be selected if their last modified time are within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. L'ora viene applicata con il fuso orario UTC e il formato "2018-12-01T05:00:00Z".The time is applied to UTC time zone in the format of "2018-12-01T05:00:00Z".
Le proprietà possono essere NULL, a indicare che al set di dati non viene applicato alcun filtro di attributo di file.The properties can be NULL which mean no file attribute filter will be applied to the dataset. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, vengono selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime.When modifiedDatetimeStart has datetime value but modifiedDatetimeEnd is NULL, it means the files whose last modified attribute is greater than or equal with the datetime value will be selected. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL vengono selezionati i file il cui ultimo attributo modificato è minore del valore datetime.When modifiedDatetimeEnd has datetime value but modifiedDatetimeStart is NULL, it means the files whose last modified attribute is less than the datetime value will be selected.
NoNo
modifiedDatetimeEndmodifiedDatetimeEnd Come sopra.Same as above. NoNo
distcpSettingsdistcpSettings Il gruppo di proprietà quando si usa HDFS DistCp.Property group when using HDFS DistCp. NoNo
resourceManagerEndpointresourceManagerEndpoint Endpoint Gestione risorse YarnThe Yarn Resource Manager endpoint Sì, se si usa DistCpYes if using DistCp
tempScriptPathtempScriptPath Un percorso di cartella usato per archiviare lo script di comandi temporaneo per DistCp.A folder path used to store temp DistCp command script. Il file di script viene generato da Data Factory e verrà rimosso al termine del processo di copia.The script file is generated by Data Factory and will be removed after Copy job finished. Sì, se si usa DistCpYes if using DistCp
distcpOptionsdistcpOptions Opzioni aggiuntive per il comando DistCp.Additional options provided to DistCp command. NoNo
maxConcurrentConnectionsmaxConcurrentConnections Numero di connessioni simultanee per la connessione all'archivio di archiviazione.The number of the connections to connect to storage store concurrently. Specificare solo quando si desidera limitare la connessione simultanea all'archivio dati.Specify only when you want to limit the concurrent connection to the data store. NoNo

Esempio:Example:

"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": "DelimitedTextReadSetting",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "HdfsReadSetting",
                    "recursive": true,
                    "distcpSettings": {
                        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
                        "tempScriptPath": "/usr/hadoop/tempscript",
                        "distcpOptions": "-m 100"
                    }
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Modello di origine legacyLegacy source model

Nota

Il modello di origine della copia seguente è ancora supportato così com'è per la compatibilità con le versioni precedenti.The following copy source model is still supported as-is for backward compatibility. Si consiglia di usare il nuovo modello menzionato in precedenza e l'interfaccia utente di creazione di ADF ha cambiato la generazione del nuovo modello.You are suggested to use the new model mentioned above going forward, and the ADF authoring UI has switched to generating the new model.

ProprietàProperty DescriptionDescription ObbligatoriaRequired
typetype La proprietà type dell'origine dell'attività di copia deve essere impostata su HdfsSourceThe type property of the copy activity source must be set to: HdfsSource Yes
ricorsivarecursive Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata.Indicates whether the data is read recursively from the sub folders or only from the specified folder. Si noti che se recursive è impostata su true e il sink è un archivio basato su file, la cartella o la sottocartella vuota non verrà copiata o creata nel sink.Note when recursive is set to true and sink is file-based store, empty folder/sub-folder will not be copied/created at sink.
I valori consentiti sono: true (predefinito), falseAllowed values are: true (default), false
NoNo
distcpSettingsdistcpSettings Il gruppo di proprietà quando si usa HDFS DistCp.Property group when using HDFS DistCp. NoNo
resourceManagerEndpointresourceManagerEndpoint Endpoint Gestione risorse YarnThe Yarn Resource Manager endpoint Sì, se si usa DistCpYes if using DistCp
tempScriptPathtempScriptPath Un percorso di cartella usato per archiviare lo script di comandi temporaneo per DistCp.A folder path used to store temp DistCp command script. Il file di script viene generato da Data Factory e verrà rimosso al termine del processo di copia.The script file is generated by Data Factory and will be removed after Copy job finished. Sì, se si usa DistCpYes if using DistCp
distcpOptionsdistcpOptions Opzioni aggiuntive per il comando DistCp.Additional options provided to DistCp command. NoNo
maxConcurrentConnectionsmaxConcurrentConnections Numero di connessioni simultanee per la connessione all'archivio di archiviazione.The number of the connections to connect to storage store concurrently. Specificare solo quando si desidera limitare la connessione simultanea all'archivio dati.Specify only when you want to limit the concurrent connection to the data store. NoNo

Esempio: origine HDFS nell'attività di copia mediante DistCpExample: HDFS source in copy activity using DistCp

"source": {
    "type": "HdfsSource",
    "distcpSettings": {
        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
        "tempScriptPath": "/usr/hadoop/tempscript",
        "distcpOptions": "-m 100"
    }
}

Per altre informazioni su come usare DistCp per copiare in modo efficiente dati da HDFS, vedere la sezione successiva.Learn more on how to use DistCp to copy data from HDFS efficiently from the next section.

Esempi di filtro file e cartelleFolder and file filter examples

Questa sezione descrive il comportamento risultante del percorso cartella e del nome del file con i filtri con caratteri jolly.This section describes the resulting behavior of the folder path and file name with wildcard filters.

folderPathfolderPath fileNamefileName ricorsivarecursive Struttura delle cartelle di origine e risultato del filtro (i file in grassetto sono stati recuperati)Source folder structure and filter result (files in bold are retrieved)
Folder* (vuoto, usare valore predefinito)(empty, use default) falsefalse CartellaAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv
Folder* (vuoto, usare valore predefinito)(empty, use default) truetrue CartellaAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv
Folder* *.csv falsefalse CartellaAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv
Folder* *.csv truetrue CartellaAFolderA
    File1.csv    File1.csv
    File2.json    File2.json
    Sottocartella1    Subfolder1
        File3.csv        File3.csv
        File4.json        File4.json
        File5.csv        File5.csv
AltraCartellaBAnotherFolderB
    File6.csv    File6.csv

Usare DistCp per copiare dati da HDFSUse DistCp to copy data from HDFS

DistCp è uno strumento da riga di comando nativo di Hadoop per eseguire la copia distribuita in un cluster Hadoop.DistCp is a Hadoop native command-line tool to do distributed copy in a Hadoop cluster. Quando si esegue un comando DistCp, vengono prima elencati tutti i file da copiare e quindi vengono creati vari processi di mapping nel cluster Hadoop, ognuno dei quali esegue la copia binaria dall'origine al sink.When run a Distcp command, it will first list all the files to be copied, create several Map jobs into the Hadoop cluster, and each Map job will do binary copy from source to sink.

L'attività di copia supporta l'uso di DistCp per copiare i file così come sono nel BLOB di Azure (inclusa la copiadi staging) o in Azure Data Lake Store, nel qual caso è possibile sfruttare appieno la potenza del cluster anziché eseguire la Integration Runtime self-hosted.Copy Activity support using DistCp to copy files as-is into Azure Blob (including staged copy) or Azure Data Lake Store, in which case it can fully leverage your cluster's power instead of running on the Self-hosted Integration Runtime. I miglioramenti in termini di velocità di copia risultano particolarmente significativi se il cluster è molto potente.It will provide better copy throughput especially if your cluster is very powerful. In base alla configurazione in Azure Data Factory, l'attività di copia crea automaticamente un comando distcp, lo invia al cluster Hadoop e monitorizza lo stato della copia.Based on your configuration in Azure Data Factory, Copy activity automatically construct a distcp command, submit to your Hadoop cluster, and monitor the copy status.

PrerequisitiPrerequisites

Per usare DistCp per copiare file così come sono da HDFS in BLOB di Azure (inclusa una copia di staging) o in Azure Data Lake Store, assicurarsi che il cluster Hadoop soddisfi i requisiti seguenti:To use DistCp to copy files as-is from HDFS to Azure Blob (including staged copy) or Azure Data Lake Store, make sure your Hadoop cluster meets below requirements:

  1. I servizi MapReduce e Yarn siano abilitati.MapReduce and Yarn services are enabled.

  2. La versione di Yarn sia almeno 2.5.Yarn version is 2.5 or above.

  3. Il server HDFS sia integrato con l'archivio dati di destinazione: BLOB di Azure o Azure Data Lake Store.HDFS server is integrated with your target data store - Azure Blob or Azure Data Lake Store:

    • Il FileSystem di BLOB di Azure è supportato in modo nativo a partire da Hadoop 2.7.Azure Blob FileSystem is natively supported since Hadoop 2.7. È sufficiente specificare il percorso del file con estensione jar nella configurazione dell'ambiente Hadoop.You only need to specify jar path in Hadoop env config.
    • Il FileSystem di Azure Data Lake Store è disponibile come pacchetto a partire da Hadoop 3.0.0-alpha1.Azure Data Lake Store FileSystem is packaged starting from Hadoop 3.0.0-alpha1. Se la versione del cluster Hadoop è inferiore, è necessario importare manualmente nel cluster pacchetti JAR correlati ad Azure Data Lake Store (azure-Lake-store.jar) da qui e specificare il percorso del file JAR nella configurazione dell'ambiente Hadoop.If your Hadoop cluster is lower than that version, you need to manually import ADLS related jar packages (azure-datalake-store.jar) into cluster from here, and specify jar path in Hadoop env config.
  4. Preparare una cartella temporanea in HDFS.Prepare a temp folder in HDFS. Questa cartella temporanea viene usata per archiviare lo script della shell DistCp, in modo che occupi solo qualche KB di spazio.This temp folder is used to store DistCp shell script, so it will occupy KB-level space.

  5. Verificare che l'account utente specificato nel servizio collegato di HDFS disponga dell'autorizzazione per a) inviare l'applicazione a Yarn; b) creare una sottocartella, leggere/scrivere file nella cartella temporanea sopra indicata.Make sure the user account provided in HDFS Linked Service have permission to a) submit application in Yarn; b) have the permission to create subfolder, read/write files under above temp folder.

ConfigurazioniConfigurations

Vedere la sezione configurazioni ed esempi correlati a DistCp nella sezione di origine HDFS .See DistCp related configurations and examples in HDFS as source section.

Uso dell'autenticazione Kerberos per il connettore HDFSUse Kerberos authentication for HDFS connector

Sono disponibili due opzioni per configurare l'ambiente locale in modo da poter usare l'autenticazione Kerberos nel connettore HDFS.There are two options to set up the on-premises environment so as to use Kerberos Authentication in HDFS connector. L'utente può scegliere quella più adatta al caso specifico.You can choose the one better fits your case.

Opzione 1: aggiungere il computer del runtime di integrazione self-hosted nell'area di autenticazione di KerberosOption 1: Join Self-hosted Integration Runtime machine in Kerberos realm

RequisitiRequirements

  • 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.The Self-hosted Integration Runtime machine needs to join the Kerberos realm and can’t join any Windows domain.

Come configurareHow to configure

Nel computer del runtime di integrazione self-hosted:On Self-hosted Integration Runtime machine:

  1. Eseguire l'utilità Ksetup per configurare il server e l'area didi autenticazione di Kerberos KDC.Run the Ksetup utility to configure the Kerberos KDC server and realm.

    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.The machine must be configured as a member of a workgroup since a Kerberos realm is different from a Windows domain. È possibile farlo configurando l'area di autenticazione di Kerberos e aggiungendo un server KDC come indicato di seguito.This can be achieved by setting the Kerberos realm and adding a KDC server as follows. Sostituire REALM.COM con la propria area di autenticazione.Replace REALM.COM with your own respective realm as needed.

        C:> Ksetup /setdomain REALM.COM
        C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    

    Riavviare il computer dopo aver eseguito questi 2 comandi.Restart the machine after executing these 2 commands.

  2. Verificare la configurazione con il comando Ksetup.Verify the configuration with Ksetup command. L'output dovrebbe essere simile al seguente:The output should be like:

        C:> Ksetup
        default realm = REALM.COM (external)
        REALM.com:
            kdc = <your_kdc_server_address>
    

In Azure Data Factory:In Azure Data Factory:

  • Configurare il connettore HDFS usando l'autenticazione di Windows con il nome e la password principali di Kerberos per connettersi all'origine dati HDFS.Configure the HDFS connector using Windows authentication together with your Kerberos principal name and password to connect to the HDFS data source. Controllare la sezione Proprietà del servizio collegato HDFS per i dettagli di configurazione.Check HDFS Linked Service properties section on configuration details.

Opzione 2: Abilitare il trust reciproco tra il dominio di Windows e l'area di autenticazione di KerberosOption 2: Enable mutual trust between Windows domain and Kerberos realm

RequisitiRequirements

  • Il computer del runtime di integrazione self-hosted deve essere aggiunto a un dominio di Windows.The Self-hosted Integration Runtime machine must join a Windows domain.
  • È necessaria l'autorizzazione per aggiornare le impostazioni del controller di dominio.You need permission to update the domain controller's settings.

Come configurareHow to configure

Nota

Sostituire REALM.COM e AD.COM nell'esercitazione di seguito con le rispettive aree di autenticazione e controller di dominio in base alle esigenze.Replace REALM.COM and AD.COM in the following tutorial with your own respective realm and domain controller as needed.

Nel server KDC:On KDC server:

  1. Modificare la configurazione KDC nel file krb5.conf per far considerare attendibile a KDC il dominio di Windows che fa riferimento al modello di configurazione di seguito.Edit the KDC configuration in krb5.conf file to let KDC trust Windows Domain referring to the following configuration template. Per impostazione predefinita, la configurazione si trova in /etc/krb5.conf.By default, the configuration is located at /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 = .
         }
    

    Riavviare il servizio KDC dopo la configurazione.Restart the KDC service after configuration.

  2. Preparare un'entità denominata krbtgt/Realm. COM@ad.com nel server KDC con il comando seguente:Prepare a principal named krbtgt/REALM.COM@AD.COM in KDC server with the following command:

        Kadmin> addprinc krbtgt/REALM.COM@AD.COM
    
  3. Nel file di configurazione del servizio HDFS hadoop.security.auth_to_local aggiungere RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//.In hadoop.security.auth_to_local HDFS service configuration file, add RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//.

Nel controller di dominio:On domain controller:

  1. Eseguire i comandi Ksetup seguenti per aggiungere una voce di area di autenticazione:Run the following Ksetup commands to add a realm entry:

        C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
        C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    
  2. Stabilire una relazione di trust dal dominio di Windows all'area di autenticazione di Kerberos.Establish trust from Windows Domain to Kerberos Realm. [password] è la password per l'entità krbtgt/Realm. COM@ad.com.[password] is the password for the principal krbtgt/REALM.COM@AD.COM.

        C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /passwordt:[password]
    
  3. Selezionare l'algoritmo di crittografia usato in Kerberos.Select encryption algorithm used in Kerberos.

    1. Passare a Server Manager > Gestione Criteri di gruppo > Dominio > Oggetti Criteri di gruppo > Criteri dominio attivi o predefiniti e selezionare Modifica.Go to Server Manager > Group Policy Management > Domain > Group Policy Objects > Default or Active Domain Policy, and Edit.

    2. Nella finestra popup Editor Gestione criteri di gruppo, passare a Configurazione computer > Criteri > Impostazioni di Windows > Impostazioni di sicurezza > Criteri locali > Opzioni di sicurezza e configurare Sicurezza di rete: configura tipi di crittografia consentiti per Kerberos.In the Group Policy Management Editor popup window, go to Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options, and configure Network security: Configure Encryption types allowed for Kerberos.

    3. Selezionare l'algoritmo di crittografia da usare per connettersi a KDC.Select the encryption algorithm you want to use when connect to KDC. In genere, è possibile selezionare semplicemente tutte le opzioni.Commonly, you can simply select all the options.

      Configurare i tipi di crittografia per Kerberos

    4. Utilizzare il comando Ksetup per specificare l'algoritmo di crittografia da usare nell'area di autenticazione specifica.Use Ksetup command to specify the encryption algorithm to be used on the specific REALM.

           C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
      
  4. Creare il mapping tra l'account di dominio e l'entità Kerberos per poter usare quest'ultima nel dominio di Windows.Create the mapping between the domain account and Kerberos principal, in order to use Kerberos principal in Windows Domain.

    1. Avviare Strumenti di amministrazione > Utenti e computer di Active Directory.Start the Administrative tools > Active Directory Users and Computers.

    2. Configurare funzionalità avanzate facendo clic su Visualizza > Funzionalità avanzate.Configure advanced features by clicking View > Advanced Features.

    3. Individuare l'account per cui si desidera creare i mapping e fare clic con il tasto destor del mouse per visualizzare Mapping nomi. Fare clic sulla scheda Nomi Kerberos.Locate the account to which you want to create mappings, and right-click to view Name Mappings > click Kerberos Names tab.

    4. Aggiungere un'entità dall'area di autenticazione.Add a principal from the realm.

      Eseguire il mapping di sicurezza e identità

Nel computer del runtime di integrazione self-hosted:On Self-hosted Integration Runtime machine:

  • Eseguire i comandi Ksetup seguenti per aggiungere una voce di area di autenticazione.Run the following Ksetup commands to add a realm entry.

          C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
          C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    

In Azure Data Factory:In Azure Data Factory:

  • Configurare il connettore HDFS usando l'autenticazione di Windows con l'account di dominio o l'entità Kerberos per connettersi all'origine dati HDFS.Configure the HDFS connector using Windows authentication together with either your Domain Account or Kerberos Principal to connect to the HDFS data source. Controllare la sezione Proprietà del servizio collegato HDFS per i dettagli di configurazione.Check HDFS Linked Service properties section on configuration details.

Proprietà attività di ricercaLookup activity properties

Per informazioni dettagliate sulle proprietà, controllare l' attività di ricerca.To learn details about the properties, check Lookup activity.

Passaggi successiviNext steps

Per un elenco degli archivi dati supportati come origini o sink dall'attività di copia in Azure Data Factory, vedere gli archivi dati supportati.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.