Hadoop Developer - ZooKeeper Sqoop e Flume Video Tutorial

821 Views

10.1 ZooKeeper, Sqoop e Flume

Olá, bem-vindo à lição 11 do curso Big Data e Hadoop Developer, oferecido pela Simplilearn. Esta lição se concentrará no ZooKeeper, Sqoop e Flume.

10.2 Objetivos

Depois de completar esta lição, você será capaz de: • Explicar o ZooKeeper e sua função • Listar os desafios enfrentados no processamento distribuído • Instalar e configurar o ZooKeeper • Explicar o conceito do Sqoop • Instalar e configurar o Sqoop • Explicar o conceito de Flume • Configurar e correr Flume

10.3 Por que o ZooKeeper

O Apache Hadoop, quando introduzido, tornou-se uma tecnologia popular para gerenciamento do Big Data. Consequentemente, serviços diferentes como HBase, Storm e Kafka foram adicionados como parte de um cluster Hadoop. Com o aumento dos serviços e dos nós de computação, havia a necessidade do gerenciamento integrado. É aqui que o ZooKeeper é usado em serviços fora de serviço para suportar alta disponibilidade de processamento de dados. Considere um sistema distribuído com vários servidores, que são responsáveis ​​por manter os dados e realizar operações nesses dados. Como você determina os servidores que estão vivos e operando a qualquer momento? Ou, como você determina os servidores disponíveis para processar uma compilação em um sistema de compilação distribuído?

10.4 O que é o ZooKeeper?

Ao contrário da crença popular, o ZooKeeper não é usado para armazenar dados, mas para armazenar nós. Ele verifica se o cliente está disponível ou não. É um serviço de coordenação distribuído rápido, altamente disponível, tolerante a falhas. Com o ZooKeeper, você pode criar estruturas de dados distribuídas e confiáveis ​​para associação a grupos, eleição de líder, fluxo de trabalho coordenado e serviços de configuração, bem como estruturas de dados distribuídos generalizadas, como bloqueios, filas, barreiras e travas.

10.5 Recursos de ZooKeeper

Alguns dos principais recursos do ZooKeeper são os seguintes: O ZooKeeper fornece um kernel simples e de alto desempenho para a construção de clientes complexos. Também fornece serviços de coordenação distribuída para aplicativos distribuídos. O ZooKeeper segue a FIFO, a abordagem First-In-First-Out, quando se trata de execução de tarefas. Ele permite a sincronização, serialização e coordenação de nós em um cluster do Hadoop. Ele vem com arquitetura de pipeline para obter uma abordagem sem espera. Além disso, o ZooKeeper gerencia problemas usando algoritmos internos para detecção e prevenção de deadlock. Aplica uma abordagem de multiprocessamento para reduzir o tempo de espera para a execução do processo. Além disso, o ZooKeeper permite o processamento distribuído. Assim, é compatível com serviços relacionados ao MapReduce.

10.6 Desafios enfrentados em aplicações distribuídas

Existem alguns desafios enfrentados em aplicativos distribuídos. A coordenação de nós em um cluster é propensa a erros. As condições de corrida quando se trata de execução de tarefas e sincronização e os impasses em relação à detecção e prevenção são desafiadores. Há chances de falha parcial na execução do trabalho, resultando no reinício de todas as tarefas. Além disso, existem inconsistências devido a falhas de hardware ou serviço.

10.7 Coordenação

Alguns dos pontos-chave relacionados à coordenação são os seguintes: Associação de grupo: refere-se à introdução de um novo nó no cluster para executar tarefas de sincronização e distribuição. Eleição de líder: Em um ambiente distribuído, a eleição de líder é a seleção de um nó líder em um cluster para permitir a alocação e o monitoramento de tarefas. Configuração dinâmica: Refere-se à flexibilidade na configuração de um nó de acordo com o tipo de trabalho a ser executado. Seções críticas: Estas são as áreas no processamento distribuído usadas para armazenar as variáveis ​​globais necessárias para executar execuções de trabalho. Monitoramento de status: refere-se ao monitoramento do status dos nós no heartbeat do processo de cluster, sincronização de RAM e outros. Enfileiramento: Refere-se à geração de um mecanismo de enfileiramento para executar vários trabalhos em um horário estipulado.

10.8 Metas e usos do ZooKeeper

Os objetivos e usos do ZooKeeper são descritos aqui. Há vários objetivos do ZooKeeper, como: A serialização garante evitar o atraso nas operações de leitura ou gravação; Confiabilidade garante que uma atualização aplicada por um usuário no cluster persista até que seja substituída por outra atualização; A atomicidade não permite resultados parciais. Qualquer atualização de usuário pode ser bem-sucedida ou falhar; e Simple Application Programming Interface ou API fornece uma interface para desenvolvimento e implementação. Existem muitos usos do ZooKeeper. Alguns deles são: Configuração garante que os nós no cluster estejam em sincronia entre si e também com o servidor NameNode. Fila de mensagens é a comunicação com os nós presentes no cluster. Notificação refere-se ao processo de notificar o NameNode de qualquer falha no cluster para que a tarefa específica possa ser reiniciada a partir de outro nó. Além disso, a sincronização garante que todos os nós do cluster estejam em sincronia entre si e os serviços estão funcionando bem.

10.9 Entidades ZooKeeper

O ZooKeeper é composto por três entidades: líder, seguidor e observador. Líder, como um sistema, é responsável por iniciar o processo e garantir que os nós no cluster estejam em sincronia com o processo que é executado. Apenas um líder pode existir em um cluster. O seguidor é o sistema que obedece ao líder, aceita o trabalho ou as mensagens do líder e as executa. Pode haver vários seguidores em um cluster. Observador é um sistema que observa os nós para garantir a eficiência e a conclusão do trabalho. O observador ajuda o líder a atribuir tipos específicos de tarefas a nós diferentes, garantindo que os nós ocupados não recebam vários trabalhos.

10.10 Dados do ZooKeeper Modelo

O ZooKeeper possui um namespace hierárquico, onde cada nó é chamado de Znode. Um exemplo é mostrado na imagem, onde o diagrama da árvore representa o namespace. A árvore segue uma abordagem de cima para baixo, em que '/' é a raiz e App1 e App2 residem na raiz. O caminho para acessar o banco de dados é / App1 / db, que é chamado de caminho hierárquico. Da mesma forma, para acessar conf no App1, o caminho é / App / conf e, no Aplicativo 2, o caminho é '/ App2 / conf.

10,11 Znode

O Znode é um nó de dados na memória no serviço de dados do ZooKeeper. Ele possui um namespace hierárquico e segue notações do tipo UNIX para o caminho. A tela examina ainda mais os conteúdos relacionados ao Znode. Clique em cada guia para saber mais. Tipos de Znodes: Existem dois tipos de Znodes, Znode Regular e Znode Efêmero. Bandeira do Znode: Sequential flag é o único sinalizador do Znode que é responsável por acessar dados sequencialmente. Recursos do Znode: O mecanismo de observação é um dos recursos do Znode. O mecanismo de observação recebe notificações de nós que residem no cluster. Ele também permite acionadores de uma só vez para execução de tarefas. Mecanismo de tempo limite também é um recurso do Znode, onde a sessão pode ser usada. Sessão é um termo aplicado para uma conexão com um servidor do cliente. O mecanismo de tempo limite permite a alocação de recursos por um período de tempo limitado. O Znode não foi projetado para armazenamento de dados; armazena metadados ou configuração no sistema líder; e também armazena informações como a versão do timestamp.

10.12 Funções da API do cliente

As APIs do cliente possuem funções internas, como create, delete, exist, getData, getChildren, setData e Sync para executar operações. Os parâmetros para cada função são os seguintes: Caminho, dados e sinalizador para função de criação; caminho e versão para a função de exclusão; caminho e observe as funções exist, getData e getChildren; caminho, dados e versão para a função setData; e caminho para a função de sincronização. O ZooKeeper executa essas operações automaticamente. No entanto, um usuário pode alterar o comportamento do ZooKeeper usando qualquer uma dessas funções. Existem duas versões de sincronização. Eles são síncronos e assíncronos.

10.13 Receita 1 - Gerenciamento de Cluster

Receitas são as diretrizes para usar o ZooKeeper para implementar funções de ordem superior. A seguir, uma receita para o gerenciamento de cluster usado em ambientes de nuvem: • Para cada host cliente i, onde i é igual a 1 a N: • ​​Observar em / membros • Criar membros slash reduzir o array como nós efêmeros • Um nó que se junta ou sai do cluster gera um alerta • Manter a atualização dos membros da barra barra a matriz do host periodicamente para alterações no status do nó. Por exemplo, altere a carga, a memória e a CPU.

10.14 Receita 2 - Eleição do Líder

Segue-se um exemplo de uma receita para eleição de líder: • Todos os participantes do processo eleitoral criam um nó sequencial efêmero no mesmo caminho eleitoral. • O nó com o menor número de sequência é o líder. • Cada nó seguidor ouve o nó com o próximo número de sequência mais baixo. • Quando o líder for removido, vá para o caminho da eleição e encontre um novo líder; o nó com o número de sequência mais baixo torna-se o líder. • Quando a sessão expirar, verifique o estado da eleição e vá para a eleição, se necessário. A imagem dada ilustra este exemplo em detalhes. Por favor, passe algum tempo para percorrer a imagem.

10.15 Receita 3 - Bloqueio Exclusivo Distribuído

Segue-se uma receita para a função de bloqueio exclusivo distribuído, assumindo que existem N clientes de rastreio da Web a tentar obter um bloqueio nos dados de links. • Os clientes criam um Znode seqüencial e efêmero sob o caminho dado na tela. • Os clientes solicitam uma lista de filhos para o bloqueio do Znode, ou seja, o nó de bloqueio. • O cliente com o ID mais baixo, de acordo com a ordem natural, terá o bloqueio. • Outros clientes definem relógios no Znode com o ID imediatamente antes da sua própria identificação. Eles verificam periodicamente o bloqueio em caso de notificação. • O cliente que deseja liberar um bloqueio exclui o nó, que aciona o próximo cliente na linha para adquirir o bloqueio.

10.16 Cenário Empresarial

Tim Burnet é o AVP de infra-estruturas de TI da Nutri Worldwide, Inc. Ele antecipa que Olivia Tyler, vice-presidente executiva de operações de TI, irá pedir-lhe para trabalhar em um serviço de coordenação de alto desempenho para aplicações distribuídas como parte de seu projeto atual. Tim sabe que ele deve usar o ZooKeeper para esta tarefa. Ele quer estar preparado, então ele decide instalar o ZooKeeper.

10.17 Exibir nós do ZooKeeper usando o Demo CLI 1

Nesta demonstração, você verá como visualizar os nós do ZooKeeper usando a interface de linha de comando do ZooKeeper. Vamos ver a interface de linha de comando do ZooKeeper. Primeiro, vamos encontrar o Zookeeper CLI, isto é, zkCli, usando o comando find do Linux. Você será capaz de observar o caminho listado na tela. CD para o diretório que contém o zkCli e inicie-o usando o endereço IP do host local 127.0.0.1 e a porta 2-1-8-1. Certas mensagens informativas aparecem na tela. Digite o comando help quando o prompt do ZooKeeper for exibido. Listar os nós usando o comando ls slash. Liste um dos nós usando 'ls slash node name'. Por exemplo, "slash hífen h-base não seguro". Você também pode obter informações sobre o nó usando 'get hhase hash da barra sem segurança'. Observe os atributos listados, como o número de nós filhos.

10.18 Por que Sqoop

Embora as empresas de vários setores estejam tentando migrar de bancos de dados relacionais estruturados, como MySQL, Teradata, Netezza e assim por diante, para o Hadoop, houve preocupações quanto à facilidade de transição dos bancos de dados existentes. Foi um desafio carregar dados em massa no Hadoop ou acessá-los a partir do MapReduce. Os usuários tinham que considerar a consistência de dados, o consumo de recursos do sistema de produção e a preparação de dados. A transferência de dados usando scripts foi demorada e ineficiente. O acesso direto de dados de sistemas externos também foi complicado. Isso foi resolvido com a introdução do Sqoop. O Sqoop permite a importação e exportação de dados a partir de bancos de dados estruturados. Juntamente com Oozie, o Sqoop ajuda no agendamento e automação de tarefas de importação e exportação.

10.19 O que é o Sqoop?

O Sqoop, um projeto do Apache Hadoop Ecosystem, é um aplicativo de interface de linha de comando para transferir dados entre bancos de dados relacionais e Hadoop. Ele suporta cargas incrementais de uma única tabela ou uma consulta SQL de formato livre. As importações também podem ser usadas para preencher tabelas no Hive ou no HBase. As exportações podem ser usadas para colocar dados do Hadoop em um banco de dados relacional.

10,20 Sqoop - Conexão Vida Real

Profissionais de marketing on-line, o Coupon.com usa o Sqoop para trocar dados entre o Hadoop e o appliance de data warehouse IBM Netezza. A organização pode consultar seus bancos de dados estruturados e transferir os resultados para o Hadoop usando o Sqoop. O grupo Apollo, uma empresa de educação, também usa o Sqoop para extrair dados de bancos de dados, bem como para injetar os resultados dos Jobs do Hadoop novamente em bancos de dados relacionais.

10.21 Sqoop e seus usos

O Sqoop é necessário quando um banco de dados é importado de um Banco de Dados Relacional (RDB) para o Hadoop ou vice-versa. Um Banco de Dados Relacional ou RDB, refere-se a qualquer dado em um formato estruturado. Bancos de dados no MySQL ou Oracle são exemplos de RDB. Ao exportar bancos de dados de um banco de dados relacional para o Hadoop, os usuários devem considerar a consistência de dados, o consumo de recursos do sistema de produção e a preparação de dados para provisionamento de pipeline downstream. Ao importar o banco de dados do Hadoop para um Banco de Dados Relacional, os usuários devem ter em mente que acessar diretamente os dados que residem em sistemas externos em uma estrutura do MapReduce complica os aplicativos. Também expõe o sistema de produção a cargas excessivas originadas de nós do cluster. Por isso, Sqoop é necessário em ambos os cenários.

10.22 Sqoop e seus usos (continuação)

A seguir, um resumo do processamento do Sqoop. O Sqoop é executado em um cluster do Hadoop. Ele importa dados do banco de dados RDB ou NoSQL para o Hadoop. Ele tem acesso ao núcleo do Hadoop, que ajuda a usar mapeadores para dividir os dados recebidos em formatos não estruturados e colocar os dados no HDFS. Ele exporta dados de volta para o RDB, garantindo que o esquema dos dados no banco de dados seja mantido. Esta tela descreve como o Sqoop executa sua execução. Primeiro, o conjunto de dados que está sendo transferido é dividido em partições. Em seguida, um trabalho somente de mapa é iniciado com mapeadores individuais responsáveis ​​por transferir uma fatia do conjunto de dados. Por fim, cada registro dos dados é tratado de maneira segura quanto ao tipo, já que o Sqoop usa metadados para inferir os tipos de dados.

10.23 Benefícios do Sqoop

Use o comando mostrado na imagem para importar dados presentes no banco de dados MySQL usando Sqoop, em que sl000 é o nome do banco de dados e auth é o nome da tabela.

10,24 Processamento Sqoop

O processo da importação do Sqoop é resumido nesta tela: • O Sqoop faz uma introspecção no banco de dados para reunir os metadados necessários para os dados que estão sendo importados. • Um trabalho do Hadoop somente de mapa é enviado ao cluster pelo Sqoop. • O trabalho somente de mapa realiza a transferência de dados usando os metadados capturados na etapa um.

10,25 Execução Sqoop - Processo

Os dados importados são salvos em um diretório no HDFS com base na tabela que está sendo importada. Os usuários podem especificar qualquer diretório alternativo onde os arquivos devem ser preenchidos. Por padrão, esses arquivos contêm campos delimitados por vírgulas com novas linhas separando os diferentes registros. Os usuários também podem substituir o formato no qual os dados são copiados especificando explicitamente o separador de campo e os caracteres do terminador de gravação. Além disso, os usuários podem facilmente importar dados no formato de dados Avro, especificando a opção '-as-avrodatafile' com o comando import. O Sqoop suporta diferentes formatos de dados para importar dados. Também fornece várias opções para ajustar a operação de importação.

10.26 Importando dados usando o Sqoop

Os processos de importação de dados para Hive e HBase são fornecidos na tela. Clique em cada guia para saber mais. Importando dados para o Hive: Primeiro, o Sqoop cuida de preencher o metastore Hive com metadados apropriados para a tabela e também invoca os comandos necessários para carregar a tabela ou a partição. Em seguida, usando a importação do Hive, o Sqoop converte os dados dos tipos de dados nativos no armazenamento de dados externo nos tipos correspondentes no Hive. Além disso, o Sqoop escolhe automaticamente o conjunto de delimitadores nativo usado pelo Hive. Se os dados que estão sendo importados contiverem nova linha ou outros caracteres delimitadores Hive, o Sqoop permitirá a remoção de tais caracteres. Os dados são preenchidos corretamente para consumo no Hive. Por fim, depois que a importação é concluída, o usuário pode operar na tabela como qualquer outra tabela no Hive. Importando dados para o HBase Quando os dados são importados para o HBase, o Sqoop pode preencher os dados em uma determinada família de colunas em uma tabela do HBase. A tabela HBase e as configurações da família de colunas são necessárias para importar uma tabela para o HBase. Os dados importados para o HBase são convertidos em sua representação de string e inseridos como bytes UTF-8. Use os comandos mostrados na tela para importar dados para o HBase. • Conecte-se ao banco de dados usando o primeiro comando. • Especifique os parâmetros, como nome de usuário, senha e nome da tabela, usando o segundo comando. • Crie uma tabela HBase com a família de colunas, conforme especificado no MySQL, usando o terceiro comando.

10.27 Sqoop Import - Process

O processo da importação do Sqoop é resumido nesta tela: • O Sqoop faz uma introspecção no banco de dados para reunir os metadados necessários para os dados que estão sendo importados. • Um trabalho do Hadoop somente de mapa é enviado ao cluster por Sqoop. • O trabalho somente de mapa realiza a transferência de dados usando os metadados capturados na etapa um.

10.28 Sqoop Import - Process (cont.)

Os dados importados são salvos em um diretório no HDFS com base na tabela que está sendo importada. Os usuários podem especificar qualquer diretório alternativo onde os arquivos devem ser preenchidos. Por padrão, esses arquivos contêm campos delimitados por vírgulas com novas linhas separando os diferentes registros. Os usuários também podem substituir o formato no qual os dados são copiados especificando explicitamente o separador de campo e os caracteres do terminador de gravação. Além disso, os usuários podem facilmente importar dados no formato de dados Avro especificando a opção '-as-avrodatafile' com o comando import. O Sqoop suporta diferentes formatos de dados para importar dados. Também fornece várias opções para ajustar a operação de importação.

10.29 Importando dados para o Hive e o HBase

Os processos de importação de dados para Hive e HBase são fornecidos na tela. Clique em cada guia para saber mais. Importando dados para o Hive: Primeiro, o Sqoop cuida de preencher o metastore Hive com metadados apropriados para a tabela e também invoca os comandos necessários para carregar a tabela ou a partição. Em seguida, usando a importação do Hive, o Sqoop converte os dados dos tipos de dados nativos no armazenamento de dados externo nos tipos correspondentes no Hive. Além disso, o Sqoop escolhe automaticamente o conjunto de delimitadores nativo usado pelo Hive. Se os dados que estão sendo importados contiverem nova linha ou outros caracteres delimitadores Hive, o Sqoop permitirá a remoção de tais caracteres. Os dados são preenchidos corretamente para consumo no Hive. Por fim, depois que a importação é concluída, o usuário pode operar na tabela como qualquer outra tabela no Hive. Importando dados para o HBase Quando os dados são importados para o HBase, o Sqoop pode preencher os dados em uma determinada família de colunas em uma tabela do HBase. A tabela HBase e a família de colunas as configurações são necessárias para importar uma tabela para o HBase. Os dados importados para o HBase são convertidos em sua representação de string e inseridos como bytes UTF-8. Use os comandos mostrados na tela para importar dados para o HBase. • Conecte-se ao banco de dados usando o primeiro comando. • Especifique os parâmetros, como nome de usuário, senha e nome da tabela, usando o segundo comando. • Crie uma tabela HBase com a família de colunas, conforme especificado no MySQL, usando o terceiro comando.

10.30 Exportando dados do Hadoop usando o Sqoop

Use o comando mostrado na imagem para exportar dados do Hadoop usando o Sqoop. Há várias etapas para exportar dados do Hadoop usando o Sqoop. Primeiro, examine o banco de dados em busca de metadados e transfira os dados. Em seguida, transfira os dados do HDFS para o banco de dados. Além disso, o Sqoop divide o conjunto de dados de entrada em divisões. O Sqoop usa tarefas de mapas individuais para enviar os grupos ao banco de dados. Cada tarefa de mapa realiza essa transferência em várias transações para garantir uma taxa de transferência ideal e utilização mínima de recursos.

10.31 Conectores Sqoop

Os diferentes tipos de conectores Sqoop são conectores genéricos JDBC, Sqoop padrão e Fast-path. O conector JDBC Genérico pode ser usado para conectar-se a qualquer banco de dados acessível via JDBC. O conector Sqoop padrão é projetado para bancos de dados específicos, como MySQL, PostgreSQL, Oracle, SQL Server e DB2. O conector Fast-path é especializado no uso de ferramentas em lote específicas para transferir dados com alta taxa de transferência. Por exemplo, bancos de dados MySQL e PostgreSQL.

10.32 Comandos do Sqoop da Amostra

Esta tela lista vários comandos comuns do Sqoop. O primeiro comando na tela é para importar os dados da demo sqoop da tabela mysql para um diretório HDFS. Observe o –m 1, que garante que há apenas uma saída do mapeador. No segundo comando, observe que id é maior que dois, o que coloca uma condição nos dados a serem importados. Você também pode especificar uma consulta SQL específica, conforme comando na tela, onde menciona –e selecione iniciar a partir da demo de sublinhado sqoop onde id é igual a treze. O terceiro comando na tela mostra uma função de exportação. Observe os hífens e o hífen duplo antes do driver, conectar, nome de usuário e senha. Existem mais alguns comandos listados na tela para sua referência. Por favor, vá até o mesmo para melhor compreensão.

10.33 Cenário Empresarial

Tim Burnet, o AVP de infra-estruturas de TI da Nutri Worldwide, Inc., está trabalhando em um exercício de reestruturação de modelo de dados em andamento para o aplicativo de diretório de funcionários. Ele deseja dados de detalhes de funcionários de um RDBMS existente. Ele planeja importar os dados para um sistema Sqoop e exportá-los de volta para o RDBMS. Atualmente, o Sqoop não está instalado em seu sistema. Tim planeja instalar o Sqoop e importar e exportar esses dados em massa.

10.34 Instalar o Sqoop Demo 2

Nesta demonstração, você aprenderá sobre a instalação do Sqoop. Visite o site sqoop.apache.org Clique no link espelho próximo. Selecione um link de espelho para baixar o Pig. Selecione a versão 1.4.4. Certifique-se de selecionar a versão que suporta o hadoop 1.0. Clique com o botão direito e copie o link sqoop-1.4.4.bin__hadoop-1.0.0.tar.gz. Vá para o servidor Ubuntu e digite wget seguido pelo link copiado para fazer o download do sqoop. Em seguida, pressione Enter. Descompacte o arquivo para extraí-lo na pasta. Digite tar -xvzf sqoop e pressione Tab. Copie a pasta na localização, / usr / local / sqoop. Digite sudo cp –r sq e pressione Enter. Configurar o bashrc. Digite sudo vi $ HOME / .bashrc e pressione Enter. Defina a peça destacada para garantir que o sqoop tenha todas as dependências necessárias. Atualize o prompt bash. Digite o comando exec bash e pressione Enter. Para executar uma demonstração no sqoop, você precisa de um servidor de banco de dados. Neste exemplo, você instalará o servidor MySQL. Digite o comando mostrado na tela e pressione Enter. Uma vez que o MySQL está instalado, digite o comando mostrado na tela e pressione Enter para iniciar o MySQL. Crie um banco de dados chamado SL. Digite o comando mostrado no na tela e pressione Enter. Digite o comando use sl e pressione Enter para que o MySQL use isso como o banco de dados principal. Crie uma tabela chamada autenticação que tenha colunas chamadas nome de usuário e senha como títulos. Digite o comando mostrado na tela e pressione Enter. Para inserir dados na tabela, digite o comando mostrado na tela e pressione Enter. Assegure-se de que os dados sejam inseridos com êxito usando o comando mencionado na tela e pressione Enter. O próximo passo é baixar o driver de banco de dados que será usado pelo sqoop. Isso pode ser feito visitando www.mysql.com/downloads/ Clique no link Baixar do MySQL Developer Zone. Você será levado para a página de destino dev.mysql.com/downloads/. Para baixar o MySQL Connectors, clique no link Download. Você será levado para a página de destino dev.mysql.com/downloads/connector/. Selecione Conector / J para fazer o download da distribuição necessária. Selecione a opção Platform Independent (Independente da plataforma) na lista suspensa Select Platform (Selecionar plataforma). Clique no botão Download ao lado de Conector de arquivo TAR compactado independente de plataforma, independente de arquitetura. Clique no botão "Não, obrigado, basta iniciar meu download". ligação. Uma caixa pop-up Download File Info é exibida. Clique no botão Iniciar download. Assegure-se de que o arquivo baixado seja copiado em / usr / local / sqoop / lib. Pressione Enter. Para alterar a propriedade da pasta / usr / local / sqoop, digite o comando mostrado na tela e pressione Enter. Altere a propriedade para / usr / local / sqoop / lib Digite o comando mostrado na tela e pressione Enter. Você instalou e configurou com sucesso o sqoop.

10.35 Importar dados no Sqoop usando a demonstração do banco de dados MySQL 3

Nesta demonstração, você aprenderá a importar dados no Sqoop usando o banco de dados MySQL. Vamos analisar a ingestão de dados de um banco de dados relacional, o MySQL, para o HDFS usando o Sqoop. Para fazer isso, primeiro inicie o MySQL e crie alguns dados. Liste os bancos de dados no MySQL usando o comando 'show databases'. Use um banco de dados de teste nesse caso. Crie uma tabela nomeie meu sql_data com o id como chave primária de inteiro e nomeie-o como varchar 50. Uma vez que a tabela é criada, insira uma linha na tabela com um valor como 1, USA. Para verificar se a linha foi inserida com sucesso, liste o conteúdo da tabela usando a consulta de seleção. Veja o conteúdo da tabela na tela. Inserir outra linha na tabela com um valor como 2, na Índia. Verifique se a linha foi inserida novamente usando a consulta de seleção. Saia do MySQL. Agora, vamos executar o utilitário sqoop. Digite o comando sqoop como mostrado na tela e execute-o. Você pode ver algumas mensagens de log na tela. Em segundo plano, o sqoop invoca os programas MapReduce. Finalmente, você receberá uma confirmação e algumas métricas de trabalho. Verifique os dados que foram importados no HDFS. Observe que dois ou mais arquivos são criados. Cat o conteúdo das saídas da peça, uma vez para cada. Agora, execute o sqoop com um mapeador. Execute o comando com um –m 1. Você receberá uma confirmação com as métricas de job ao concluir. Listar o conteúdo do diretório do HDFS. Você observará apenas um arquivo de saída ao executar apenas um mapeador. Gato o conteúdo para ver os dados. Você observará que todos os registros foram importados com sucesso em um arquivo no HDFS.

10.36 Exportar dados usando o Sqoop do Hadoop Demo 4

Esta demonstração mostrará como exportar dados do Hadoop usando o Sqoop. Vamos agora exportar dados do HDFS para o banco de dados MySQL usando o Sqoop. Inicie o MySQL digitando mysql no prompt de comando. Digite use test para alterar o banco de dados. Crie uma tabela denominada 'exported_table' com o ID como o inteiro e o nome da chave primária como o caractere variável. Selecione estrela na tabela export_ para verificar os dados existentes. Você verá zero resultados indicando que a tabela não possui dados. Você já deve ter criado a tabela chamada 'export_data'. Você pode verificá-los usando o comando mostrado na tela. Você pode listar o conteúdo do arquivo usando o comando mostrado na tela. Você notará que o conjuntos de dados contêm 2 linhas. A primeira linha é laptop e a segunda linha é desktop. Copie o arquivo para o HDFS usando o comando mostrado na tela. Vamos agora usar o comando de exportação Sqoop para exportar os dados do HDFS para o banco de dados MySQL. Digite a URL JDBC do banco de dados MySQL. Além disso, mencione a tabela na qual os dados devem ser exportados. Mencione o arquivo ou diretório do HDFS do qual os dados devem ser exportados para a tabela MySQL e pressione Enter. Você notará a porcentagem MapReduce. Você verá que o Mapa é 100%, enquanto Reduzir é 0%. Isso indica que os Redutores não estão sendo executados como parte do trabalho Sqoop. Inicie o MySQL novamente. Digite use test para alterar o banco de dados. Selecione estrela na tabela export_ para verificar os dados existentes. Você notará que os 2 registros foram exportados do HDFS para o banco de dados MySQL.

10,37 Por que Flume

Considere um cenário em que uma empresa tem milhares de serviços em execução em servidores diferentes em um cluster que produz muitos logs grandes. Esses logs devem ser analisados ​​juntos. O problema atual envolve determinar como enviar os logs para uma configuração que tenha o Hadoop. O canal ou método usado para enviá-los deve ser confiável, escalável, extensivo e gerenciável. Para resolver esse problema, a ferramenta de agregação de log chamada flume pode ser usada. O Apache Sqoop e o Flume são as ferramentas usadas para coletar dados de diferentes origens e carregá-los no HDFS. O Sqoop no Hadoop é usado para extrair dados estruturados de bancos de dados como Teradata, Oracle e assim por diante, enquanto o Flume no Hadoop fornece dados armazenados em diferentes origens e lida com dados não estruturados.

10.38 Apache Flume - Introdução

O Apache Flume é um serviço distribuído e confiável para coletar, agregar e mover com eficiência grandes quantidades de dados de fluxo contínuo no Hadoop Distributed File System (HDFS). Ele possui uma arquitetura simples e flexível baseada no fluxo contínuo de dados, que é robusto e tolerante a falhas. O diagrama mostra como os dados de log são coletados de um servidor da Web e enviados para o HDFS usando os componentes de origem, canal e coletor. Uma fonte Flume consome eventos entregues a ela por uma fonte externa, como um servidor web. Quando uma fonte Flume recebe um evento, ele armazena em um ou mais canais. O canal é um repositório passivo que mantém o evento até ser consumido por um coletor Flume. Um exemplo é o canal de arquivos, que é apoiado pelo sistema de arquivos local. O coletor remove o evento do canal e o coloca em um repositório externo como o HDFS ou o encaminha para a fonte Flume do próximo agente Flume ou próximo salto no fluxo.

10.39 Modelo Flume

O modelo Flume é composto por três entidades: um agente, um processador e um coletor. O agente é responsável por receber dados de um aplicativo. A execução de agentes de canal garantirá que os dados sejam continuamente ingeridos no Hadoop. O componente do processador é responsável por executar o processamento intermediário de tarefas. O componente coletor é responsável por gravar dados no armazenamento permanente (HDFS).

10,40 Flume - Metas

Flume trabalha no sentido de atingir certos objetivos-chave para a ingestão de dados. O Flume visa garantir confiabilidade, pois possui modos de recuperação de falha ajustáveis. Ele também visa obter escalabilidade fornecendo um caminho de dados escalonável horizontalmente que pode ser usado para formar uma topologia de agentes. Para extensibilidade, o Flume aproveita a arquitetura de plug-in para estender os módulos. Para gerenciamento, o Flume fornece uma interface centralizada de gerenciamento de fluxo de dados, tornando conveniente o gerenciamento entre nós.

10.41 Escalabilidade em Flume

Flume é escalável. Ele tem um caminho de dados dimensionável horizontalmente, o que ajuda a alcançar o equilíbrio de carga em caso de maior carga no ambiente de produção. A imagem dada descreve um exemplo de escalabilidade horizontal. Suponha que haja dois agentes e dois coletores. Se um coletor estiver inativo, os dois agentes serão reduzidos a apenas um colecionador.

10.42 Flume - exemplos de casos de uso

Flume pode ser usado para uma variedade de casos de uso. Ele pode ser usado para coletar logs de nós em um cluster do Hadoop; para coletar logs de serviços como httpd e mail; e para monitoramento de processos. Além disso, o Flume também foi amplamente usado para coletar impressões de aplicativos personalizados para uma rede de anúncios como o Meebo.

10.43 Cenário Empresarial

Como parte da infra-estrutura da Web da Nutri Worldwide, Inc., os logs estão sendo mantidos em servidores da web. Tim deseja colocar esses logs no HDFS para analisar os dados do fluxo de cliques e processar a análise nos dados. Tim pretende usar o Flume para ingerir constantemente os dados de log da Web no Hadoop.

10.44 Configurar e executar o Flume Agents Demo 5

Nesta demonstração, você aprenderá como configurar e executar agentes do canal.

10,46 Quiz

A seguir, algumas perguntas para testar sua compreensão dos conceitos discutidos.

10.53 Resumo

Vamos resumir os tópicos abordados nesta lição: • O ZooKeeper fornece um kernel simples e de alto desempenho para construir clientes mais complexos. Tem três entidades básicas: líder, seguidor e observador. Watch é usado para obter notificações de todos os seguidores e observadores para os líderes. • Sqoop é uma ferramenta projetada para transferir dados entre o Hadoop e bancos de dados relacionais, incluindo MySQL, MS SQL e PostgreSQL. Ele permite a importação de dados de um RDB, como SQL, MySQL ou Oracle, para o HDFS. Também permite o inverso. • O Apache Flume é um serviço de coleta de dados distribuído que reúne o fluxo de dados de sua origem e agrega os dados ao coletor. O Flume fornece um modo de agente confiável e escalonável para ingerir dados no HDFS.

10.54 Conclusão

Isso conclui a lição 'ZooKeeper, Sqoop e Flume'. A próxima lição abordará 'Ecossistema e seus Componentes. '

10.47 Estudo de caso - ZooKeeper

Cenário: A XY Networks fornece suporte de segurança de rede para muitas organizações. Ele configurou um cluster de servidores e criou um aplicativo interno que monitora esses clusters. Ele enfrenta vários problemas na coordenação desses servidores, e há inúmeras falhas parciais e condições de corrida. Os usuários reclamam que o comportamento do aplicativo é imprevisível. Eles descobriram que o manuseio de coordenação distribuída em seu software é complicado e levará 200 dias de trabalho para consertá-lo. Em vez disso, eles querem explorar a ferramenta ZooKeeper, que faz parte da Apache Foundation, e é uma biblioteca de receitas para coordenação distribuída de processos. Clique em Análise para saber o próximo movimento da empresa. Análise: A equipe de TI pesquisou no Apache ZooKeeper. Possui APIs muito expressivas e mecanismo bem testado para lidar com a coordenação de processos distribuídos. Algumas das receitas fornecidas pelo ZooKeeper são: 1.Alterar falhas parciais 2.Levantação do leitor 3.Evitar impasses 4.Evitar condições de corrida Clique em Solução para conhecer as etapas para explorar os nós e relógios no ZooKeeper.

10.48 Estudo de caso - ZooKeeper - Demo

Solução: execute as seguintes etapas para explorar os nós e relógios no ZooKeeper: 1.Abra uma sessão do ZooKeeper em um nó. 2.Criar um znode efêmero. 3.Crie alguns znodes efêmeros seqüenciais sob o nó. 4.List os znodes. 5.Recuperar os dados do znode. Abra outra sessão do ZooKeeper. 7.Crie uma observação sobre os nós efêmeros da segunda sessão. 8. Exclua um dos nós na primeira sessão e visualize os alertas na segunda sessão, 9. Execute a primeira sessão e visualize os alertas na segunda sessão.

10.49 Estudo de caso - Sqoop

Cenário: A XY Invest fornece consultoria de investimento para pessoas físicas de alta renda e mantém dados do mercado de ações para muitas bolsas. Ele tem arquivos de dados do mercado de ações que são críticos para análise e monitoramento. Ele escolheu implementar o Hadoop para armazenar arquivos de dados do mercado de ações e decidiu usar o Hive para análise no Hadoop para a facilidade de uso dos cientistas de dados da empresa. Seus dados atuais estão no RDBMS, que é usado como um banco de dados de transações e deve ser transferido para o Hadoop e o Hive. A equipe de TI da empresa ouviu falar que o Sqoop é uma ferramenta popular para a ingestão de dados do RDBMS no Hadoop e no Hive. Clique em Análise para saber o próximo movimento da empresa. Análise: A equipe de TI faz pesquisas no Sqoop e descobre que é eficiente na cópia de grandes quantidades de dados do RDBMS para o Hadoop. O Sqoop também é efetivo na importação de dados agregados do Hadoop para o RDBMS para outras análises. As vantagens de usar o Sqoop para a ingestão de dados são: 1. Ele pode se conectar a diferentes tipos de bancos de dados. 2.Pode ler o esquema da tabela e converter tipos de dados no Hadoop e Hive. 3.Pode criar tabelas no Hive a partir do esquema do banco de dados. 4. Ele usa o Hadoop map-only jobs para transferência de dados e usa 4 mappers por padrão. 5. Ele usa a chave primária da tabela para dividir os dados para os mapeadores. 6. Também gera um arquivo de classe Java para a tabela com métodos getter e setter. 7. É capaz de copiar dados no popular formato Parquet. Clique em Solution para as etapas para explorar o Sqoop.

10.50 Estudo de caso - Sqoop - Demo

Execute as seguintes etapas para explorar o Sqoop: 1.Connect to MySQL database with JDBC connection from Sqoop. 2.Lista as tabelas no banco de dados MySQL. 3. Copie os dados da tabela MySQL para o Hadoop. 4. Copie os dados no formato Parquet. 5.Use Sqoop para criar a tabela no Hive e copie os dados. 6. Verifique os dados na tabela Hive.

10.51 Estudo de caso - Flume

Cenário: A XY Networks fornece suporte de segurança de rede para muitas organizações. Ele configurou um cluster de servidores e criou um aplicativo interno que monitora esses clusters. Ele coleta arquivos de registro do sistema de vários clientes em tempo real e armazena esses arquivos no Hadoop para processamento analítico. Um sistema altamente escalável e tolerante a falhas é necessário para reunir esses arquivos de log. A equipe de TI da empresa ouviu falar que o Flume e o Sqoop são ferramentas populares para o processamento de dados no Hadoop. Como seus dados são arquivos de log não estruturados, o Flume é a ferramenta preferida para suas necessidades comerciais. Clique em Análise para saber o próximo movimento da empresa. Análise: A equipe de TI faz uma pesquisa sobre o Flume e descobre que possui uma arquitetura de origem com fontes e pias fracamente conectadas. Os canais são usados ​​para receber dados da fonte para os coletores. As vantagens do uso do Flume para a ingestão de dados são: 1.Pode processar milhões de mensagens de log por minuto. 2. É escalonável horizontalmente e pode adicionar novas máquinas ao cluster para aumentar a capacidade. 3. Fornece processamento em tempo real de arquivos de log. 4. É altamente tolerante a falhas. Se o dissipador estiver inoperante, as mensagens se acumularão no canal e serão entregues quando o coletor funcionar. Clique em Solution para as etapas para explorar o Flume.

10.52 Estudo de caso - Flume - Demo

Solução: Execute as etapas a seguir para explorar o Flume: 1.Crie um arquivo de propriedades que defina a origem, o coletor e o canal. 2.Faça a fonte para extrair dados de um arquivo de log e afunde-os e armazene-os no HDFS. 3. Execute o Flume com este arquivo de propriedades. 4.Adicione dados ao arquivo de log. 5. Verifique se os dados são copiados para o HDFS pelo Flume. 6. Quanto mais dados são adicionados ao arquivo de log, o Flume coleta os dados e os adiciona ao HDFS. Clique em Avançar para ver a demonstração.