Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Connessione ai database Apache Hadoop con AWS Schema Conversion Tool
Puoi utilizzare l'interfaccia a riga di AWS SCT comando (CLI) per migrare da Apache Hadoop ad Amazon. EMR AWS SCT utilizza il bucket Amazon S3 come storage temporaneo per i dati durante la migrazione.
AWS SCT supporta come sorgente Apache Hadoop versione 2.2.0 e successive. Inoltre, AWS SCT supporta la versione 0.13.0 e successive di Apache Hive.
AWS SCT supporta come destinazione Amazon EMR versione 6.3.0 e successive. Inoltre, AWS SCT supporta come destinazione Apache Hadoop versione 2.6.0 e successive e Apache Hive versione 0.13.0 e successive.
Argomenti
- Prerequisiti per l'utilizzo di Apache Hadoop come sorgente
- Autorizzazioni per l'utilizzo di Hive come fonte
- Autorizzazioni per l'utilizzo HDFS come fonte
- Autorizzazioni per l'utilizzo come destinazione HDFS
- Connessione ad Apache Hadoop come sorgente
- Connessione al tuo Hive e ai tuoi servizi di origine HDFS
- Connessione ad Amazon EMR come destinazione
Prerequisiti per l'utilizzo di Apache Hadoop come sorgente
I seguenti prerequisiti sono necessari per connettersi ad Apache Hadoop con. AWS SCT CLI
-
Crea un bucket Amazon S3 per archiviare i dati durante la migrazione. Puoi quindi copiare i dati su Amazon EMR HDFS o utilizzare Amazon S3 come repository di dati per i tuoi carichi di lavoro Hadoop. Per ulteriori informazioni, consulta Creare un bucket nella Guida per l'utente di Amazon S3.
-
Crea un ruolo AWS Identity and Access Management (IAM) con la
AmazonS3FullAccess
policy. AWS SCT utilizza questo IAM ruolo per accedere al tuo bucket Amazon S3. -
Prendi nota della tua chiave AWS segreta e della chiave di accesso AWS segreta. Per ulteriori informazioni sulle chiavi di AWS accesso, consulta la sezione Gestione delle chiavi di accesso nella Guida IAM per l'utente.
-
Crea e configura un EMR cluster Amazon di destinazione. Per ulteriori informazioni, consulta la sezione Guida introduttiva ad Amazon EMR nella Amazon EMR Management Guide.
-
Installa l'
distcp
utilità sul tuo cluster Apache Hadoop di origine. Inoltre, installa l's3-dist-cp
utilità sul tuo EMR cluster Amazon di destinazione. Assicurati che gli utenti del database dispongano delle autorizzazioni necessarie per eseguire queste utilità. -
Configura il
core-site.xml
file nel cluster Hadoop di origine per utilizzare il protocollo s3a. A tale scopo, impostate ilfs.s3a.aws.credentials.provider
parametro su uno dei seguenti valori.org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider
org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider
org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider
org.apache.hadoop.fs.s3a.auth.AssumedRoleCredentialProvider
È possibile aggiungere il seguente esempio di codice nel
core-site.xml
file.<property> <name>fs.s3a.aws.credentials.provider</name> <value>org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider</value> </property>
L'esempio precedente mostra una delle quattro opzioni del precedente elenco di opzioni. Se non impostate il
fs.s3a.aws.credentials.provider
parametro nelcore-site.xml
file, AWS SCT sceglie automaticamente il provider.
Autorizzazioni per l'utilizzo di Hive come fonte
Le autorizzazioni richieste per un utente sorgente Hive sono le seguenti:
READ
accesso alle cartelle di dati di origine e al bucket Amazon S3 di origineREAD+WRITE
accesso ai bucket Amazon S3 intermedi e di destinazione
Per aumentare la velocità di migrazione, ti consigliamo di eseguire la compattazione per ACID le tabelle di origine transazionali.
Le autorizzazioni richieste per un utente target di Amazon EMR Hive sono le seguenti:
READ
accesso al bucket Amazon S3 di destinazioneREAD+WRITE
accesso al bucket Amazon S3 intermedioREAD+WRITE
accesso alle cartelle di destinazione HDFS
Autorizzazioni per l'utilizzo HDFS come fonte
Le autorizzazioni richieste HDFS come fonte sono le seguenti:
EXECUTE
per NameNodeEXECUTE+READ
per tutte le cartelle e i file di origine inclusi nel progetto di migrazioneREAD+WRITE
per latmp
directory in cui NameNode eseguire i job Spark e archiviare i file prima della migrazione ad Amazon S3
NelHDFS, tutte le operazioni richiedono un accesso trasversale. L'accesso trasversale richiede l'EXECUTE
autorizzazione su tutti i componenti esistenti del percorso, ad eccezione del componente del percorso finale. Ad esempio, per qualsiasi operazione di accesso/foo/bar/baz
, l'utente deve disporre dell'EXECUTE
autorizzazione su /
/foo
, e. /foo/bar
Il seguente esempio di codice mostra come concedere EXECUTE+READ
le autorizzazioni per le cartelle e i file di origine e le READ+WRITE
autorizzazioni per la directory. tmp
hadoop fs –chmod –R 744 /user/hdfs-data hadoop fs –chmod –R 766 /tmp
Autorizzazioni per l'utilizzo come destinazione HDFS
Le autorizzazioni richieste per Amazon EMR HDFS come destinazione sono le seguenti:
EXECUTE
per il EMR cluster Amazon NameNode di destinazioneREAD+WRITE
per le HDFS cartelle di destinazione in cui archivierai i dati dopo la migrazione
Connessione ad Apache Hadoop come sorgente
È possibile utilizzare Apache Hadoop come sorgente nella versione 1.0.670 o successiva. AWS SCT Puoi migrare i cluster Hadoop su EMR Amazon solo nell' AWS SCT interfaccia a riga di comando (). CLI Prima di iniziare, acquisisci familiarità con l'interfaccia a riga di comando di. AWS SCT Per ulteriori informazioni, consulta CLIRiferimento per AWS Schema Conversion Tool.
Per connettersi ad Apache Hadoop in AWS SCT CLI
-
Crea un nuovo AWS SCT CLI script o modifica un modello di scenario esistente. Ad esempio, puoi scaricare e modificare il
HadoopMigrationTemplate.scts
modello. Per ulteriori informazioni, consulta Ottenere CLI scenari. -
Configura le impostazioni AWS SCT dell'applicazione come la posizione del driver e la cartella di registro.
Scaricate il JDBC driver richiesto e specificate la posizione in cui archiviate il file. Per ulteriori informazioni, consulta Installazione JDBC dei driver per AWS Schema Conversion Tool.
Il seguente esempio di codice mostra come aggiungere il percorso al driver Apache Hive. Dopo aver eseguito questo esempio di codice, AWS SCT memorizza i file di registro nella
c:\sct
cartella.SetGlobalSettings -save: 'true' -settings: '{ "hive_driver_file": "c:\\sct\\HiveJDBC42.jar", "log_folder": "c:\\sct", "console_log_folder": "c:\\sct" }' /
È possibile utilizzare questo esempio e gli esempi seguenti in Windows.
-
Crea un nuovo AWS SCT progetto.
Il seguente esempio di codice crea il
hadoop_emr
progetto nellac:\sct
cartella.CreateProject -name: 'hadoop_emr' -directory: 'c:\sct' /
-
Aggiungi il tuo cluster Hadoop di origine al progetto.
Usa il
AddSourceCluster
comando per connetterti al cluster Hadoop di origine. Assicurati di fornire i valori per i seguenti parametri obbligatori:name
,host
port
, e.user
Gli altri parametri sono facoltativi.Il seguente esempio di codice aggiunge il cluster Hadoop di origine. Questo esempio imposta
HADOOP_SOURCE
come nome del cluster di origine. Utilizzate questo nome di oggetto per aggiungere Hive e HDFS servizi al progetto e creare regole di mappatura.AddSourceCluster -name: 'HADOOP_SOURCE' -vendor: 'HADOOP' -host: '
hadoop_address
' -port: '22' -user: 'hadoop_user
' -password: 'hadoop_password
' -useSSL: 'true' -privateKeyPath: 'c:\path\name
.pem' -passPhrase: 'hadoop_passphrase
' /Nell'esempio precedente, sostituisci
hadoop_address
con l'indirizzo IP del cluster Hadoop. Se necessario, configura il valore dell'opzione di porta. Quindi, sostituiscihadoop_user
ehadoop_password
con il nome del tuo utente Hadoop e la password per questo utente. Inpath\name
, inserisci il nome e il percorso del PEM file per il cluster Hadoop di origine. -
Salva lo script. CLI Quindi, aggiungi le informazioni di connessione per Hive e i tuoi HDFS servizi.
Connessione al tuo Hive e ai tuoi servizi di origine HDFS
Puoi connetterti al tuo Hive di origine e HDFS ai servizi con. AWS SCT CLI Per connetterti ad Apache Hive, usa la versione 2.3.4 o successiva del JDBC driver Hive. Per ulteriori informazioni, consulta Installazione JDBC dei driver per AWS Schema Conversion Tool.
AWS SCT si connette ad Apache Hive con l'utente del cluster. hadoop
A tale scopo, usa i comandi AddSourceClusterHive
andAddSourceClusterHDFS
. È possibile utilizzare uno dei seguenti approcci.
-
Crea un nuovo SSH tunnel.
In
createTunnel
, immetteretrue
. Perhost
, inserisci l'indirizzo IP interno del tuo Hive o del tuo HDFS servizio di origine. Ad esempioport
, inserisci la porta di servizio del tuo Hive o HDFS del tuo servizio.Quindi, inserisci il tuo Hive o le tue HDFS credenziali per e.
user
password
Per ulteriori informazioni sui SSH tunnel, consulta Configurare un SSH tunnel verso il nodo primario utilizzando il port forwarding locale nella Amazon EMR Management Guide. -
Usa un tunnel esistente. SSH
In
host
, immetterelocalhost
. Perport
, inserisci la porta locale dai parametri del SSH tunnel. -
Connect direttamente al tuo Hive e HDFS ai tuoi servizi.
Ad esempio
host
, inserisci l'indirizzo IP o il nome host dell'Hive o del servizio di origine. HDFS Perport
, inserisci la porta di servizio del tuo Hive o del tuo servizio. HDFS Quindi, inserisci il tuo Hive o le tue HDFS credenziali per e.user
password
Per connetterti a Hive e in HDFS AWS SCT CLI
-
Apri CLI lo script che include le informazioni di connessione per il cluster Hadoop di origine. Assicurati di utilizzare il nome del cluster Hadoop definito nel passaggio precedente.
-
Aggiungi il tuo servizio Hive di origine al progetto.
Usa il
AddSourceClusterHive
comando per connettere il servizio Hive di origine. Assicurati di fornire i valori per i seguenti parametri obbligatori:user
,password
,cluster
name
, eport
. Gli altri parametri sono facoltativi.Il seguente esempio di codice crea un tunnel AWS SCT per l'utilizzo del servizio Hive. Questo servizio sorgente Hive viene eseguito sullo stesso PC di. AWS SCT Questo esempio utilizza il cluster
HADOOP_SOURCE
di origine dell'esempio precedente.AddSourceClusterHive -cluster: 'HADOOP_SOURCE' -name: 'HIVE_SOURCE' -host: 'localhost' -port: '10005' -user: '
hive_user
' -password: 'hive_password
' -createTunnel: 'true' -localPort: '10005' -remoteHost: 'hive_remote_address
' -remotePort: 'hive_port
' /Il seguente esempio di codice si connette al servizio Hive senza un tunnel.
AddSourceClusterHive -cluster: 'HADOOP_SOURCE' -name: 'HIVE_SOURCE' -host: '
hive_address
' -port: 'hive_port
' -user: 'hive_user
' -password: 'hive_password
' /Negli esempi precedenti, sostituisci
hive_user
ehive_password
con il nome del tuo utente Hive e la relativa password.Quindi, sostituisci
hive_address
ehive_port
con l'indirizzo NameNode IP e la porta del cluster Hadoop di origine.In
hive_remote_address
, è possibile utilizzare il valore predefinito127.0.0.1
o l'indirizzo NameNode IP del servizio Hive di origine. -
Aggiungi il tuo HDFS servizio di origine al progetto.
Usa il
AddSourceClusterHDFS
comando per connettere il HDFS servizio di origine. Assicurati di fornire i valori per i seguenti parametri obbligatori:user
password
,cluster
,name
, eport
. Gli altri parametri sono facoltativi.Assicurati che l'utente disponga delle autorizzazioni necessarie per migrare i dati dal servizio di origineHDFS. Per ulteriori informazioni, consulta Autorizzazioni per l'utilizzo di Hive come fonte.
Il seguente esempio di codice crea un tunnel AWS SCT per l'utilizzo del servizio HDFS Apache. Questo esempio utilizza il cluster
HADOOP_SOURCE
di origine creato in precedenza.AddSourceClusterHDFS -cluster: 'HADOOP_SOURCE' -name: 'HDFS_SOURCE' -host: 'localhost' -port: '9005' -user: '
hdfs_user
' -password: 'hdfs_password
' -createTunnel: 'true' -localPort: '9005' -remoteHost: 'hdfs_remote_address
' -remotePort: 'hdfs_port
' /Il codice seguente si connette al HDFS servizio Apache senza un tunnel.
AddSourceClusterHDFS -cluster: 'HADOOP_SOURCE' -name: 'HDFS_SOURCE' -host: '
hdfs_address
' -port: 'hdfs_port
' -user: 'hdfs_user
' -password: 'hdfs_password
' /Negli esempi precedenti, sostituisci
hdfs_user
ehdfs_password
con il nome dell'HDFSutente e la relativa password.Quindi, sostituisci
hdfs_address
ehdfs_port
con l'indirizzo NameNode IP e la porta del cluster Hadoop di origine.In
hdfs_remote_address
, è possibile utilizzare il valore predefinito127.0.0.1
o l'indirizzo NameNode IP del servizio Hive di origine. -
Salva il tuo CLI script. Quindi, aggiungi le informazioni di connessione per il tuo EMR cluster Amazon di destinazione e i comandi di migrazione.
Connessione ad Amazon EMR come destinazione
Puoi connetterti al tuo EMR cluster Amazon di destinazione con AWS SCT CLI. A tal fine, autorizzi il traffico in entrata e l'utilizzo. SSH In questo caso, AWS SCT dispone di tutte le autorizzazioni necessarie per lavorare con il tuo EMR cluster Amazon. Per ulteriori informazioni, consulta Before you connect e Connect to the primary node using SSH nella Amazon EMR Management Guide.
AWS SCT si connette ad Amazon EMR Hive con l'utente del hadoop
cluster. Per connetterti ad Amazon EMR Hive, usa la versione del JDBC driver Hive 2.6.2.1002 o successiva. Per ulteriori informazioni, consulta Installazione JDBC dei driver per AWS Schema Conversion Tool.
Per connettersi ad Amazon EMR tramite AWS SCT CLI
-
Apri CLI lo script che include le informazioni di connessione per il cluster Hadoop di origine. Aggiungi le EMR credenziali Amazon di destinazione in questo file.
-
Aggiungi il EMR cluster Amazon di destinazione al progetto.
Il seguente esempio di codice aggiunge il EMR cluster Amazon di destinazione. Questo esempio imposta
HADOOP_TARGET
come nome del cluster di destinazione. Usa questo nome di oggetto per aggiungere Hive, HDFS servizi e una cartella bucket Amazon S3 al progetto e creare regole di mappatura.AddTargetCluster -name: 'HADOOP_TARGET' -vendor: 'AMAZON_EMR' -host: 'ec2-44-44-55-66.eu-west-1.EXAMPLE.amazonaws.com' -port: '22' -user: '
emr_user
' -password: 'emr_password
' -useSSL: 'true' -privateKeyPath: 'c:\path\name
.pem' -passPhrase: '1234567890abcdef0!' -s3Name: 'S3_TARGET' -accessKey: 'AKIAIOSFODNN7EXAMPLE' -secretKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' -region: 'eu-west-1' -s3Path: 'doc-example-bucket/example-folder' /Nell'esempio precedente, inserisci i nomi AWS delle risorse e le informazioni di EMR connessione Amazon. Ciò include l'indirizzo IP del EMR cluster Amazon, la chiave di AWS accesso, la chiave di accesso AWS segreta e il bucket Amazon S3. Se necessario, configura il valore della variabile di porta. Quindi, sostituisci
emr_user
eemr_password
con il nome del tuo EMR utente Amazon e la password per questo utente. Inpath\name
, inserisci il nome e il percorso del PEM file per il EMR cluster Amazon di destinazione. Per ulteriori informazioni, consulta Download PEM File for EMR Cluster Access. -
Aggiungi il bucket Amazon S3 di destinazione al progetto.
Il seguente esempio di codice aggiunge il bucket Amazon S3 di destinazione. Questo esempio utilizza il
HADOOP_TARGET
cluster creato in precedenza.AddTargetClusterS3 -cluster: 'HADOOP_TARGET' -Name: 'S3_TARGET' -accessKey: 'AKIAIOSFODNN7EXAMPLE' -secretKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' -region: 'eu-west-1' -s3Path: 'doc-example-bucket/example-folder' /
Nell'esempio precedente, inserisci la chiave di AWS accesso, la chiave di accesso AWS segreta e il bucket Amazon S3.
-
Aggiungi il servizio Hive di destinazione al progetto.
Il seguente esempio di codice crea un tunnel per AWS SCT lavorare con il servizio Hive di destinazione. Questo esempio utilizza il cluster
HADOOP_TARGET
di destinazione creato in precedenza.AddTargetClusterHive -cluster: 'HADOOP_TARGET' -name: 'HIVE_TARGET' -host: 'localhost' -port: '10006' -user: '
hive_user
' -password: 'hive_password
' -createTunnel: 'true' -localPort: '10006' -remoteHost: 'hive_address
' -remotePort: 'hive_port
' /Nell'esempio precedente, sostituisci
hive_user
ehive_password
con il nome del tuo utente Hive e la relativa password.Quindi, sostituisci
hive_address
con il valore predefinito127.0.0.1
o con l'indirizzo NameNode IP del servizio Hive di destinazione. Quindi, sostituiscihive_port
con la porta del servizio Hive di destinazione. -
Aggiungi il tuo HDFS servizio di destinazione al progetto.
Il seguente esempio di codice crea un tunnel per AWS SCT lavorare con il HDFS servizio Apache. Questo esempio utilizza il cluster
HADOOP_TARGET
di destinazione creato in precedenza.AddTargetClusterHDFS -cluster: 'HADOOP_TARGET' -name: 'HDFS_TARGET' -host: 'localhost' -port: '8025' -user: '
hdfs_user
' -password: 'hdfs_password
' -createTunnel: 'true' -localPort: '8025' -remoteHost: 'hdfs_address
' -remotePort: 'hdfs_port
' /Nell'esempio precedente, sostituisci
hdfs_user
ehdfs_password
con il nome dell'HDFSutente e la relativa password.Quindi, sostituisci
hdfs_address
ehdfs_port
con l'indirizzo IP privato e la porta NameNode del HDFS servizio di destinazione. -
Salva il tuo CLI script. Quindi, aggiungi le regole di mappatura e i comandi di migrazione. Per ulteriori informazioni, consulta Migrazione dei carichi di lavoro Hadoop.