Talend - File system distribuito Hadoop
In questo capitolo, impariamo in dettaglio come funziona Talend con il file system distribuito Hadoop.
Impostazioni e prerequisiti
Prima di procedere in Talend con HDFS, dovremmo conoscere le impostazioni e i prerequisiti che dovrebbero essere soddisfatti per questo scopo.
Qui stiamo eseguendo Cloudera quickstart 5.10 VM su virtual box. In questa VM deve essere utilizzata una rete solo host.
IP di rete solo host: 192.168.56.101
È necessario che lo stesso host sia in esecuzione anche su cloudera manager.
Ora sul tuo sistema Windows, vai su c: \ Windows \ System32 \ Drivers \ etc \ hosts e modifica questo file utilizzando il Blocco note come mostrato di seguito.
Allo stesso modo, sulla tua VM di avvio rapido cloudera, modifica il tuo file / etc / hosts come mostrato di seguito.
sudo gedit /etc/hosts
Configurazione della connessione Hadoop
Nel pannello del repository, vai a Metadati. Fare clic con il pulsante destro del mouse su Hadoop Cluster e creare un nuovo cluster. Fornisci il nome, lo scopo e la descrizione di questa connessione al cluster Hadoop.
Fare clic su Avanti.
Seleziona la distribuzione come cloudera e scegli la versione che stai utilizzando. Seleziona l'opzione di recupero della configurazione e fai clic su Avanti.
Immettere le credenziali del gestore (URI con porta, nome utente, password) come mostrato di seguito e fare clic su Connetti. Se i dettagli sono corretti, otterrai Cloudera QuickStart nei cluster rilevati.
Fare clic su Recupera. Questo recupererà tutte le connessioni e le configurazioni per HDFS, YARN, HBASE, HIVE.
Seleziona tutto e fai clic su Fine.
Notare che tutti i parametri di connessione verranno compilati automaticamente. Menziona cloudera nel nome utente e fai clic su Fine.
Con questo, ti sei connesso con successo a un cluster Hadoop.
Connessione a HDFS
In questo lavoro, elencheremo tutte le directory e i file presenti su HDFS.
In primo luogo, creeremo un lavoro e quindi aggiungeremo componenti HDFS ad esso. Fare clic con il tasto destro su Job Design e creare un nuovo lavoro - hadoopjob.
Ora aggiungi 2 componenti dalla tavolozza: tHDFSConnection e tHDFSList. Fare clic con il pulsante destro del mouse su tHDFSConnection e collegare questi 2 componenti utilizzando il trigger "OnSubJobOk".
Ora configura entrambi i componenti di talend hdfs.
In tHDFSConnection, scegli Repository come Property Type e seleziona il cluster Hadoop cloudera che hai creato in precedenza. Riempirà automaticamente tutti i dettagli necessari richiesti per questo componente.
In tHDFSList, seleziona "Usa una connessione esistente" e nell'elenco dei componenti scegli la tHDFSConnection che hai configurato.
Assegnare il percorso home di HDFS nell'opzione Directory HDFS e fare clic sul pulsante Sfoglia a destra.
Se hai stabilito correttamente la connessione con le suddette configurazioni, vedrai una finestra come mostrato di seguito. Elencherà tutte le directory e i file presenti nella home di HDFS.
Puoi verificarlo controllando il tuo HDFS su cloudera.
Lettura del file da HDFS
In questa sezione, vediamo come leggere un file da HDFS in Talend. È possibile creare un nuovo lavoro per questo scopo, tuttavia qui stiamo usando quello esistente.
Trascina e rilascia 3 componenti: tHDFSConnection, tHDFSInput e tLogRow dalla tavolozza alla finestra di progettazione.
Fare clic con il pulsante destro del mouse su tHDFSConnection e collegare il componente tHDFSInput utilizzando il trigger "OnSubJobOk".
Fare clic con il tasto destro su tHDFSInput e trascinare un collegamento principale su tLogRow.
Nota che tHDFSConnection avrà la configurazione simile a quella precedente. In tHDFSInput, seleziona "Usa una connessione esistente" e dall'elenco dei componenti, scegli tHDFSConnection.
In Nome file, fornire il percorso HDFS del file che si desidera leggere. Qui stiamo leggendo un semplice file di testo, quindi il nostro Tipo di file è File di testo. Allo stesso modo, a seconda dell'input, riempire il separatore di riga, il separatore di campo ei dettagli dell'intestazione come indicato di seguito. Infine, fai clic sul pulsante Modifica schema.
Poiché il nostro file contiene solo testo normale, stiamo aggiungendo solo una colonna di tipo String. Ora fai clic su Ok.
Note - Quando il tuo input ha più colonne di diversi tipi, devi menzionare lo schema qui di conseguenza.
Nel componente tLogRow, fai clic su Sincronizza colonne in modifica schema.
Selezionare la modalità in cui si desidera stampare l'output.
Infine, fare clic su Esegui per eseguire il lavoro.
Una volta che sei riuscito a leggere un file HDFS, puoi vedere il seguente output.
Scrittura di file su HDFS
Vediamo come scrivere un file da HDFS in Talend. Trascina e rilascia 3 componenti: tHDFSConnection, tFileInputDelimited e tHDFSOutput dalla tavolozza alla finestra di progettazione.
Fare clic con il tasto destro su tHDFSConnection e connettere il componente tFileInputDelimited utilizzando il trigger "OnSubJobOk".
Fare clic con il tasto destro su tFileInputDelimited e trascinare un collegamento principale su tHDFSOutput.
Nota che tHDFSConnection avrà la configurazione simile a quella precedente.
Ora, in tFileInputDelimited, fornire il percorso del file di input nell'opzione Nome file / Stream. Qui stiamo usando un file csv come input, quindi il separatore di campo è ",".
Seleziona l'intestazione, il piè di pagina, il limite in base al file di input. Nota che qui la nostra intestazione è 1 perché la riga 1 contiene i nomi delle colonne e il limite è 3 perché stiamo scrivendo solo le prime 3 righe su HDFS.
Ora, fai clic su modifica schema.
Ora, come da nostro file di input, definisci lo schema. Il nostro file di input ha 3 colonne come indicato di seguito.
Nel componente tHDFSOutput, fai clic su sincronizza colonne. Quindi, seleziona tHDFSConnection in Usa una connessione esistente. Inoltre, in Nome file, fornire un percorso HDFS in cui si desidera scrivere il file.
Nota che il tipo di file sarà un file di testo, l'azione sarà "crea", il separatore di riga sarà "\ n" e il separatore di campo sarà ";"
Infine, fai clic su Esegui per eseguire il tuo lavoro. Una volta che il lavoro è stato eseguito correttamente, controlla se il tuo file è presente su HDFS.
Esegui il seguente comando hdfs con il percorso di output che avevi menzionato nel tuo lavoro.
hdfs dfs -cat /input/talendwrite
Vedrai il seguente output se riesci a scrivere su HDFS.