Connessione ai database Apache Hadoop con AWS Schema Conversion Tool - AWS Schema Conversion Tool

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.

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'distcputilità sul tuo cluster Apache Hadoop di origine. Inoltre, installa l's3-dist-cputilità 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 il fs.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 nel core-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:

  • READaccesso alle cartelle di dati di origine e al bucket Amazon S3 di origine

  • READ+WRITEaccesso 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:

  • READaccesso al bucket Amazon S3 di destinazione

  • READ+WRITEaccesso al bucket Amazon S3 intermedio

  • READ+WRITEaccesso alle cartelle di destinazione HDFS

Autorizzazioni per l'utilizzo HDFS come fonte

Le autorizzazioni richieste HDFS come fonte sono le seguenti:

  • EXECUTEper NameNode

  • EXECUTE+READper tutte le cartelle e i file di origine inclusi nel progetto di migrazione

  • READ+WRITEper la tmp 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'EXECUTEautorizzazione 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'EXECUTEautorizzazione 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:

  • EXECUTEper il EMR cluster Amazon NameNode di destinazione

  • READ+WRITEper 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
  1. 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.

  2. 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.

  3. Crea un nuovo AWS SCT progetto.

    Il seguente esempio di codice crea il hadoop_emr progetto nella c:\sct cartella.

    CreateProject -name: 'hadoop_emr' -directory: 'c:\sct' /
  4. 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, hostport, 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, sostituisci hadoop_user e hadoop_password con il nome del tuo utente Hadoop e la password per questo utente. In path\name, inserisci il nome e il percorso del PEM file per il cluster Hadoop di origine.

  5. 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, immettere true. 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, immettere localhost. Perport, inserisci la porta locale dai parametri del SSH tunnel.

  • Connect direttamente al tuo Hive e HDFS ai tuoi servizi.

    Ad esempiohost, 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
  1. 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.

  2. 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, clustername, 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 e hive_password con il nome del tuo utente Hive e la relativa password.

    Quindi, sostituisci hive_address e hive_port con l'indirizzo NameNode IP e la porta del cluster Hadoop di origine.

    In hive_remote_address, è possibile utilizzare il valore predefinito 127.0.0.1 o l'indirizzo NameNode IP del servizio Hive di origine.

  3. 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: userpassword,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 e hdfs_password con il nome dell'HDFSutente e la relativa password.

    Quindi, sostituisci hdfs_address e hdfs_port con l'indirizzo NameNode IP e la porta del cluster Hadoop di origine.

    In hdfs_remote_address, è possibile utilizzare il valore predefinito 127.0.0.1 o l'indirizzo NameNode IP del servizio Hive di origine.

  4. 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
  1. 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.

  2. 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 e emr_password con il nome del tuo EMR utente Amazon e la password per questo utente. In path\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.

  3. 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.

  4. 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 e hive_password con il nome del tuo utente Hive e la relativa password.

    Quindi, sostituisci hive_address con il valore predefinito 127.0.0.1 o con l'indirizzo NameNode IP del servizio Hive di destinazione. Quindi, sostituisci hive_port con la porta del servizio Hive di destinazione.

  5. 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 e hdfs_password con il nome dell'HDFSutente e la relativa password.

    Quindi, sostituisci hdfs_address e hdfs_port con l'indirizzo IP privato e la porta NameNode del HDFS servizio di destinazione.

  6. 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.