Talend - Sistema de Arquivos Distribuídos Hadoop

Neste capítulo, vamos aprender em detalhes sobre como Talend funciona com o sistema de arquivos distribuído Hadoop.

Configurações e pré-requisitos

Antes de prosseguirmos no Talend com HDFS, devemos aprender sobre as configurações e pré-requisitos que devem ser atendidos para esse propósito.

Aqui estamos executando o início rápido 5.10 VM do Cloudera na caixa virtual. Uma rede somente host deve ser usada nesta VM.

IP de rede somente host: 192.168.56.101

Você deve ter o mesmo host em execução no gerenciador de cloudera também.

Agora em seu sistema Windows, vá para c: \ Windows \ System32 \ Drivers \ etc \ hosts e edite este arquivo usando o Bloco de Notas conforme mostrado abaixo.

Da mesma forma, em sua VM de início rápido cloudera, edite seu arquivo / etc / hosts conforme mostrado abaixo.

sudo gedit /etc/hosts

Configurando a conexão do Hadoop

No painel do repositório, vá para Metadados. Clique com o botão direito do mouse em Hadoop Cluster e crie um novo cluster. Forneça o nome, a finalidade e a descrição para esta conexão de cluster Hadoop.

Clique em Avançar.

Selecione a distribuição como cloudera e escolha a versão que você está usando. Selecione a opção de recuperação de configuração e clique em Avançar.

Insira as credenciais do gerente (URI com porta, nome de usuário, senha) conforme mostrado abaixo e clique em Conectar. Se os detalhes estiverem corretos, você obterá o Cloudera QuickStart nos clusters descobertos.

Clique em Buscar. Isso irá buscar todas as conexões e configurações para HDFS, YARN, HBASE, HIVE.

Selecione Tudo e clique em Concluir.

Observe que todos os parâmetros de conexão serão preenchidos automaticamente. Mencione cloudera no nome de usuário e clique em Concluir.

Com isso, você se conectou com êxito a um cluster do Hadoop.

Conectando ao HDFS

Neste trabalho, listaremos todos os diretórios e arquivos que estão presentes no HDFS.

Em primeiro lugar, criaremos um trabalho e, em seguida, adicionaremos componentes HDFS a ele. Clique com o botão direito em Job Design e crie um novo job - hadoopjob.

Agora adicione 2 componentes da paleta - tHDFSConnection e tHDFSList. Clique com o botão direito em tHDFSConnection e conecte esses 2 componentes usando o gatilho 'OnSubJobOk'.

Agora, configure ambos os componentes do talend hdfs.

Em tHDFSConnection, escolha Repositório como o Tipo de propriedade e selecione o cluster Hadoop cloudera que você criou anteriormente. Ele preencherá automaticamente todos os detalhes necessários para este componente.

Em tHDFSList, selecione “Usar uma conexão existente” e na lista de componentes escolha o tHDFSConnection que você configurou.

Forneça o caminho inicial do HDFS na opção HDFS Directory e clique no botão de navegação à direita.

Se você estabeleceu a conexão corretamente com as configurações mencionadas acima, você verá uma janela conforme mostrado abaixo. Ele listará todos os diretórios e arquivos presentes na página inicial do HDFS.

Você pode verificar isso verificando seu HDFS na cloudera.

Lendo arquivo do HDFS

Nesta seção, vamos entender como ler um arquivo do HDFS no Talend. Você pode criar um novo trabalho para este propósito, porém aqui estamos usando o existente.

Arraste e solte 3 componentes - tHDFSConnection, tHDFSInput e tLogRow da paleta para a janela do designer.

Clique com o botão direito em tHDFSConnection e conecte o componente tHDFSInput usando o gatilho 'OnSubJobOk'.

Clique com o botão direito em tHDFSInput e arraste um link principal para tLogRow.

Observe que tHDFSConnection terá a configuração semelhante à anterior. Em tHDFSInput, selecione “Usar uma conexão existente” e, na lista de componentes, escolha tHDFSConnection.

Em Nome do arquivo, forneça o caminho HDFS do arquivo que deseja ler. Aqui estamos lendo um arquivo de texto simples, então nosso tipo de arquivo é Arquivo de texto. Da mesma forma, dependendo da sua entrada, preencha o separador de linha, o separador de campo e os detalhes do cabeçalho conforme mencionado abaixo. Por fim, clique no botão Editar esquema.

Como nosso arquivo contém apenas texto simples, estamos adicionando apenas uma coluna do tipo String. Agora, clique em Ok.

Note - Quando sua entrada tem várias colunas de tipos diferentes, você precisa mencionar o esquema aqui de acordo.

No componente tLogRow, clique em Sincronizar colunas no esquema de edição.

Selecione o modo em que deseja que sua saída seja impressa.

Finalmente, clique em Executar para executar o trabalho.

Depois de ler um arquivo HDFS com êxito, você verá a seguinte saída.

Gravando arquivo em HDFS

Vamos ver como escrever um arquivo do HDFS no Talend. Arraste e solte 3 componentes - tHDFSConnection, tFileInputDelimited e tHDFSOutput da paleta para a janela do designer.

Clique com o botão direito em tHDFSConnection e conecte o componente tFileInputDelimited usando o gatilho 'OnSubJobOk'.

Clique com o botão direito em tFileInputDelimited e arraste um link principal para tHDFSOutput.

Observe que tHDFSConnection terá a configuração semelhante à anterior.

Agora, em tFileInputDelimited, forneça o caminho do arquivo de entrada na opção File name / Stream. Aqui, estamos usando um arquivo csv como entrada, portanto, o separador de campo é “,”.

Selecione o cabeçalho, rodapé e limite de acordo com seu arquivo de entrada. Observe que aqui nosso cabeçalho é 1 porque a linha 1 contém os nomes das colunas e o limite é 3 porque estamos gravando apenas as 3 primeiras linhas no HDFS.

Agora, clique em editar esquema.

Agora, de acordo com nosso arquivo de entrada, defina o esquema. Nosso arquivo de entrada possui 3 colunas, conforme mencionado abaixo.

No componente tHDFSOutput, clique em sincronizar colunas. Em seguida, selecione tHDFSConnection em Usar uma conexão existente. Além disso, em Nome do arquivo, forneça um caminho HDFS onde deseja gravar seu arquivo.

Observe que o tipo de arquivo será um arquivo de texto, a Ação será “criar”, o separador de linha será “\ n” e o separador de campo será “;”

Finalmente, clique em Executar para executar seu trabalho. Depois que o trabalho for executado com êxito, verifique se o arquivo está lá no HDFS.

Execute o seguinte comando hdfs com o caminho de saída que você mencionou em seu trabalho.

hdfs dfs -cat /input/talendwrite

Você verá a seguinte saída se tiver êxito ao escrever no HDFS.