Saturday 23 June 2018

Mover média hadoop


Exemplo do Hadoop: Olá mundo com Java, porco, colméia, Flume, Fuse, Oozie e Sqoop com Informix, DB2 e MySQL. Há muita emoção sobre Big Data e muita confusão para ir com ele. Este artigo fornece uma definição de trabalho do Big Data e, em seguida, funciona através de uma série de exemplos para que você possa ter uma compreensão em primeira mão de algumas das capacidades do Hadoop, a principal tecnologia de código aberto no domínio Big Data. Especificamente, vamos nos concentrar nas seguintes questões. O que é Big Data, Hadoop, Sqoop, Hive e Porco, e por que há muita excitação neste espaço? Como Hadoop se relaciona com o IBM DB2 e o Informix? Essas tecnologias funcionam juntas? Como posso começar com Big Data? Exemplos que são executados em um único PC Para o super impaciente, se você já pode definir o Hadoop e deseja obter o direito de trabalhar nos exemplos de código, então faça o seguinte. Ative sua instância do Informix ou do DB2. Baixe a imagem do VMWare no site Cloudera e aumente a configuração da RAM da máquina virtual para 1.5 GB. Ir para a seção que contém os exemplos de código. Existe uma instância MySQL integrada na imagem VMWare. Se você estiver fazendo os exercícios sem conectividade de rede, use os exemplos do MySQL. Para todos os outros, continue lendo. O que é Big Data Big Data é grande em quantidade, é capturado em uma taxa rápida, e é estruturado ou não estruturado, ou alguma combinação do acima. Esses fatores tornam Big Data difícil de capturar, minar e gerenciar usando métodos tradicionais. Há tanto hype nesse espaço que poderia haver um debate alargado apenas sobre a definição de dados importantes. A utilização da tecnologia Big Data não está restrita a grandes volumes. Os exemplos neste artigo usam pequenas amostras para ilustrar as capacidades da tecnologia. A partir do ano de 2017, os clusters que são grandes estão na faixa de 100 Petabyte. Os grandes dados podem ser estruturados e desestruturados. Os bancos de dados relacionais tradicionais, como o Informix e o DB2, oferecem soluções comprovadas para dados estruturados. Via extensibilidade, eles também gerenciam dados não estruturados. A tecnologia Hadoop traz novas e mais acessíveis técnicas de programação para trabalhar em grandes armazéns de dados com dados estruturados e não estruturados. Por que toda a emoção Existem muitos fatores que contribuem para o hype em torno de Big Data, incluindo o seguinte. Trazendo computação e armazenamento juntos em hardware de commodities: o resultado é uma velocidade ardente a baixo custo. Desempenho de preços: a grande tecnologia de dados da Hadoop oferece economia significativa de custos (pense em um fator de aproximadamente 10) com melhorias de desempenho significativas (novamente, fator de reflexão de 10). Sua milhagem pode variar. Se a tecnologia existente pode ser tão drasticamente derrotada, vale a pena examinar se Hadoop pode complementar ou substituir aspectos da sua arquitetura atual. Escalabilidade linear: toda tecnologia paralela faz reivindicações sobre a ampliação. O Hadoop possui escalabilidade genuína, uma vez que a última versão está expandindo o limite no número de nós para além de 4.000. Acesso total a dados não estruturados: um armazenamento de dados altamente escalável com um bom modelo de programação paralela, o MapReduce, tem sido um desafio para o setor há algum tempo. O modelo de programação Hadoops não resolve todos os problemas, mas é uma solução forte para muitas tarefas. Distribuições de Hadoop: IBM e Cloudera Um dos pontos de confusão é: Onde posso obter software para o Big Data? Os exemplos neste artigo são baseados na distribuição gratuita de Cloudera de Hadoop chamada CDH (para distribuição de Cloudera, incluindo Hadoop). Isso está disponível como uma imagem VMWare no site da Cloudera. A IBM anunciou recentemente que está transportando sua grande plataforma de dados para ser executada no CDH. O termo tecnologia disruptiva é muito usado demais, mas neste caso pode ser apropriado. O que é o Hadoop A seguir, existem várias definições do Hadoop, cada uma visando um público diferente na empresa. Para os executivos: Hadoop é um projeto de software de código aberto Apache para obter o valor da incrível variedade de dados de vários dados sobre sua organização. Use os dados em vez de jogar a maior parte dele. Para os gerentes técnicos: um conjunto de softwares de código aberto que minam o BigData estruturado e desestruturado sobre sua empresa. Integra-se com o seu ecossistema de Business Intelligence existente. Legal: um conjunto de software de código aberto que é embalado e suportado por vários fornecedores. Engenharia: um maciço paralelo, compartilhado nada, mapa baseado em Java, reduz o ambiente de execução. Pense centenas a milhares de computadores trabalhando no mesmo problema, com resiliência de falha embutida. Projetos no ecossistema Hadoop fornecem carregamento de dados, idiomas de nível superior, implantação automática de nuvem e outras capacidades. Segurança: um pacote de software protegido com Kerberos. Quais são os componentes do Hadoop O projeto Apache Hadoop possui dois componentes principais, a loja de arquivos chamada Sistema de arquivos distribuídos Hadoop (HDFS) e a estrutura de programação denominada MapReduce. Existem vários projetos de apoio que utilizam HDFS e MapReduce. Este artigo fornecerá um resumo e encorajará você a obter o livro OREily Hadoop The Definitive Guide, 3rd Edition, para obter mais detalhes. As definições abaixo são destinadas a fornecer apenas antecedentes suficientes para você usar os exemplos de código que se seguem. Este artigo é realmente para você começar com a experiência prática com a tecnologia. Este é um artigo de instruções mais do que um artigo do que é ou vamos discutir. HDFS. Se você quiser que 4000 computadores funcionem em seus dados, então você melhorará seus dados em 4000 computadores. HDFS faz isso por você. HDFS tem algumas partes móveis. Os Datanodes armazenam seus dados e o Namenode mantém registro de onde o material está armazenado. Há outras peças, mas você tem o suficiente para começar. MapReduce. Este é o modelo de programação para o Hadoop. Existem duas fases, não surpreendentemente chamadas de Mapa e Redução. Para impressionar seus amigos, diga-lhes, há um tipo aleatório entre a fase Mapa e Reduzir. O JobTracker gerencia os 4000 componentes do seu trabalho MapReduce. Os TaskTrackers recebem pedidos do JobTracker. Se você gosta de Java, então codifique em Java. Se você gosta de SQL ou outros idiomas que não são Java você ainda está com sorte, você pode usar um utilitário chamado Hadoop Streaming. Hadoop Streaming. Um utilitário para habilitar o código MapReduce em qualquer idioma: C, Perl, Python, C, Bash, etc. Os exemplos incluem um mapeador Python e um redutor AWK. Hive e Hue. Se você gosta de SQL, ficará encantado ao saber que você pode escrever SQL e ter o Hive convertê-lo em um trabalho MapReduce. Não, você não obtém um ambiente ANSI-SQL completo, mas você obtém 4000 notas e escalabilidade multi-Petabyte. O Hue oferece uma interface gráfica baseada no navegador para fazer o seu trabalho no Hive. Porco. Um ambiente de programação de nível superior para fazer codificação MapReduce. A língua do porco é chamada de latim do porco. Você pode achar que as convenções de nomenclatura são pouco convencionais, mas você obtém incríveis preços de desempenho e alta disponibilidade. Sqoop. Fornece transferência bidirecional de dados entre o Hadoop e seu banco de dados relacional favorito. Oozie. Gerencia o fluxo de trabalho Hadoop. Isso não substitui o seu agendador ou a ferramenta BPM, mas fornece if-then-else ramificação e controle dentro de seus trabalhos Hadoop. HBase. Uma loja de valores-chave super escalável. Isso funciona muito como um hash-map persistente (para o dicionário python fans think). Não é um banco de dados relacional apesar do nome HBase. FlumeNG. Um carregador em tempo real para transmitir seus dados no Hadoop. Ele armazena dados em HDFS e HBase. Você quer começar com o FlumeNG, o que melhora o canal original. Whirr. Cloud provisionamento para Hadoop. Você pode iniciar um cluster em apenas alguns minutos com um arquivo de configuração muito curto. Mahout. Aprendizagem de máquinas para Hadoop. Usado para análises preditivas e outras análises avançadas. Fusível . Faz com que o sistema HDFS se pareça com um sistema de arquivos regular para que você possa usar ls, rm, cd e outros em HDFS data Zookeeper. Usado para gerenciar a sincronização para o cluster. Você não estará trabalhando muito com o Zookeeper, mas está trabalhando duro para você. Se você acha que precisa escrever um programa que usa o Zookeeper, você é muito, muito, inteligente e poderia ser um comitê para um projeto Apache, ou você está prestes a ter um dia muito ruim. A Figura 1 mostra os principais pedaços de Hadoop. Figura 1. Arquitetura Hadoop HDFS, a camada inferior, fica em um cluster de hardware de commodities. Servidores montados em rack simples, cada um com CPUs núcleo 2-Hex, 6 a 12 discos e ram 32 gig. Para um trabalho de redução de mapa, a camada de mapeador lê dos discos a uma velocidade muito alta. O mapeador emite pares de valores-chave que são classificados e apresentados ao redutor, e a camada redutora resume os pares chave-valor. Não, você não precisa resumir, você pode realmente ter um trabalho de redução de mapa que possui apenas mapeadores. Isso deve tornar-se mais fácil de entender quando chegar ao exemplo de python-awk. Como o Hadoop se integra com minha infraestrutura Informix ou DB2, o Hadoop se integra muito bem com seus bancos de dados Informix e DB2 com o Sqoop. O Sqoop é a principal implementação de código aberto para mover dados entre o Hadoop e bancos de dados relacionais. Ele usa o JDBC para ler e escrever Informix, DB2, MySQL, Oracle e outras fontes. Existem adaptadores otimizados para vários bancos de dados, incluindo Netezza e DB2. Começando: Como executar exemplos simples de Hadoop, Hive, Pig, Oozie e Sqoop Você terminou com apresentações e definições, agora é hora das coisas boas. Para continuar, você precisará baixar o VMWare, caixa virtual ou outra imagem do site Cloudera e começar a fazer MapReduce. A imagem virtual assume que você possui um computador de 64 bits e um dos ambientes de virtualização populares. A maioria dos ambientes de virtualização tem um download gratuito. Quando você tenta inicializar uma imagem virtual de 64 bits, você pode receber queixas sobre as configurações da BIOS. A Figura 2 mostra a alteração necessária no BIOS, neste caso em um Thinkpad8482. Tenha cuidado ao fazer alterações. Alguns pacotes de segurança corporativa exigirão um código de acesso após uma alteração do BIOS antes que o sistema seja reiniciado. Figura 2. Configurações do BIOS para um convidado virtual de 64 bits Os grandes dados usados ​​aqui são bastante pequenos. O objetivo é não fazer com que seu laptop se incendie de uma moagem em um arquivo maciço, mas para mostrar-lhe fontes de dados que são interessantes, e mapear trabalhos que respondem questões significativas. Baixe a imagem virtual Hadoop É altamente recomendável que você use a imagem Cloudera para executar esses exemplos. Hadoop é uma tecnologia que resolve problemas. A embalagem de imagens da Cloudera permite que você se concentre nas questões dos grandes dados. Mas se você decidir montar todas as peças você mesmo, Hadoop tornou-se o problema e não a solução. Baixe uma imagem. A imagem CDH4, a última oferta está disponível aqui: imagem CDH4. A versão anterior, CDH3, está disponível aqui: imagem CDH3. Você tem sua escolha de tecnologias de virtualização. Você pode baixar um ambiente de virtualização gratuito do VMWare e outros. Por exemplo, vá para o vmware e baixe o vmware-player. Seu laptop provavelmente está executando o Windows para que você baixe o vmware-player para o Windows. Os exemplos neste artigo estarão usando o VMWare para esses exemplos e executando o Ubuntu Linux usando tar em vez de winzip ou equivalente. Uma vez baixado, untarunzip da seguinte maneira: tar - zxvf cloudera-demo-vm-cdh4.0.0-vmware. tar. gz. Ou, se você estiver usando o CDH3, use o seguinte: tar - zxvf cloudera-demo-vm-cdh3u4-vmware. tar. gz O Unzip geralmente funciona em arquivos tar. Depois de descompactar, você pode ativar a imagem da seguinte maneira: vmplayer cloudera-demo-vm. vmx. Youll agora tem uma tela que se parece com o que é mostrado na Figura 3. Figura 3. Imagem virtual Cloudera O comando vmplayer mergulha diretamente e inicia a máquina virtual. Se você estiver usando CDH3, então você precisará desligar a máquina e alterar as configurações da memória. Use o ícone do botão de energia ao lado do relógio na parte inferior do meio da tela para desligar a máquina virtual. Você então possui acesso de edição às configurações da máquina virtual. Para CDH3, o próximo passo é supercarregar a imagem virtual com mais RAM. A maioria das configurações só pode ser alterada com a máquina virtual desligada. A Figura 4 mostra como acessar a configuração e aumentar a RAM alocada para mais de 2GB. Figura 4. Adicionando RAM à máquina virtual Como mostrado na Figura 5, você pode alterar a configuração de rede para ponte. Com esta configuração, a máquina virtual terá seu próprio endereço IP. Se isso criar problemas na sua rede, então você pode opcionalmente usar o NAT (Network Address Translation). Você estará usando a rede para se conectar ao banco de dados. Figura 5. Alterando as configurações de rede para ponte Você está limitado pela RAM no sistema host, então não tente alocar mais RAM do que o que existe na sua máquina. Se o fizer, o computador funcionará muito devagar. Agora, no momento em que você está esperando, vá em frente e ligue a máquina virtual. O usuário cloudera está logado automaticamente na inicialização. Se você precisar, a senha Cloudera é: cloudera. Instie o Informix e o DB2, que você precisa de um banco de dados para trabalhar. Se você ainda não possui um banco de dados, você pode baixar a edição do Informix Developer aqui ou a edição gratuita do DB2 Express-C. Outra alternativa para a instalação do DB2 é baixar a imagem VMWare que já possui o DB2 instalado em um sistema operacional SuSE Linux. Faça o login como root, com a senha: senha. Mude para o ID do db2inst1. Trabalhar como raiz é como dirigir um carro sem um cinto de segurança. Por favor, fale com o seu DBA amigável local sobre como executar o banco de dados. Este artigo não abordará isso aqui. Não tente instalar o banco de dados dentro da imagem virtual Cloudera porque não há espaço livre em disco suficiente. A máquina virtual se conectará ao banco de dados usando o Sqoop, que requer um driver JDBC. Você precisará ter o driver JDBC para seu banco de dados na imagem virtual. Você pode instalar o driver Informix aqui. O instalador do Informix JDBC (lembrar, apenas o driver dentro da imagem virtual, e não o banco de dados) é mostrado na Listagem 1. Listagem 1. Instalação do driver Informix JDBC Nota: Selecione um subdiretório relativo ao homecloudera para não exigir permissão do root para o instalação. O driver JDBC do DB2 está em formato zipado, então basta descompactá-lo no diretório de destino, conforme mostrado na Listagem 2. Listagem 2. Instalação do driver do DB2 JDBC Uma introdução rápida ao HDFS e MapReduce Antes de começar a mover dados entre seu banco de dados relacional e Hadoop, Você precisa de uma rápida introdução ao HDFS e MapReduce. Existem muitos tipos de tutoriais do mundo de Olá para Hadoop, então os exemplos aqui são destinados a dar apenas antecedentes suficientes para que os exercícios do banco de dados façam sentido para você. O HDFS fornece armazenamento em todos os nós do cluster. O primeiro passo no uso do Hadoop é colocar dados em HDFS. O código mostrado na Listagem 3 recebe uma cópia de um livro de Mark Twain e um livro de James Fenimore Cooper e copia esses textos em HDFS. Lista 3. Carregar Mark Twain e James Fenimore Cooper em HDFS Agora você tem dois arquivos em um diretório no HDFS. Por favor contenha sua emoção. Sério, em um único nó e com apenas cerca de 1 megabyte, isso é tão excitante quanto a pintura a seguir. Mas se este fosse um cluster de 400 nós e você tivesse 5 petabytes ao vivo, então você teria problemas para conter sua excitação. Muitos dos tutoriais Hadoop usam o exemplo de contagem de palavras que está incluído no arquivo jar de exemplo. Acontece que muita análise envolve a contagem e agregação. O exemplo na Listagem 4 mostra como invocar o contador de palavras. Listagem 4. Contando palavras de Twain e Cooper O sufixo. gz no DS. txt. gz informa o Hadoop para lidar com a descompressão como parte do processamento Map-Reduce. Cooper é um pouco detalhado tão bem merece a compactação. Há um monte de mensagens executando o trabalho de contagem de palavras. O Hadoop está feliz em fornecer muitos detalhes sobre os programas de Mapeamento e Redução em execução em seu nome. As linhas críticas que você deseja procurar são mostradas na Listagem 5, incluindo uma segunda listagem de um trabalho com falha e como corrigir um dos erros mais comuns que você pode encontrar ao executar MapReduce. Listagem 5. Mensagens MapReduce - o caminho feliz O que todas as mensagens significam que o Hadoop fez muito trabalho e está tentando informá-lo sobre isso, incluindo o seguinte. Verificado para ver se o arquivo de entrada existe. Verificado para ver se o diretório de saída existe e, se o fizer, interromper o trabalho. Nada pior do que substituir horas de computação por um simples erro de teclado. Distribuiu o arquivo Java jar para todos os nós responsáveis ​​por fazer o trabalho. Neste caso, este é apenas um nó. Funcionou a fase do mapeador do trabalho. Normalmente, isso analisa o arquivo de entrada e emite um par de valores-chave. Observe que a chave eo valor podem ser objetos. Corriu a fase de classificação, que classifica a saída do mapeador com base na chave. Corriu a fase de redução, tipicamente isso resume o fluxo de valor-chave e grava saída para o HDFS. Criou muitas métricas sobre o progresso. A Figura 6 mostra uma amostra da página da Web das métricas do trabalho Hadoop depois de executar o exercício da Colméia. Figura 6. Página web de exemplo da Hadoop O que o trabalho fez e onde é a saída Ambas são boas perguntas e são mostradas na Listagem 6. Listagem 6. Mapa-Redução de saída No caso de você executar o mesmo trabalho duas vezes e esquecer Apague o diretório de saída, você receberá as mensagens de erro mostradas na Listagem 7. A solução deste erro é tão simples como excluir o diretório. Listagem 7. Mensagens MapReduce - falha devido à saída já existente no HDFS O Hadoop inclui uma interface do navegador para verificar o status do HDFS. A Figura 7 mostra a saída do trabalho de contagem de palavras. Figura 7. Explorando o HDFS com um navegador Um console mais sofisticado está disponível gratuitamente no site da Cloudera. Ele fornece uma série de recursos além das interfaces padrão da Hadoop. Observe que o estado de saúde do HDFS na Figura 8 é mostrado como ruim. Figura 8. Serviços Hadoop gerenciados pelo Cloudera Manager Por que é ruim Porque em uma única máquina virtual, o HDFS não pode fazer três cópias dos blocos de dados. Quando os blocos são sub-replicados, existe um risco de perda de dados, de modo que a saúde do sistema é ruim. Bom, você não está tentando executar trabalhos Hadoop de produção em um único nó. Você não está limitado a Java para seus trabalhos do MapReduce. Este último exemplo de MapReduce usa Hadoop Streaming para suportar um mapeador escrito em Python e um redutor usando AWK. Não, você não precisa ser um Java-guru para escrever Map-Reduce Mark Twain não era um grande fã de Cooper. Neste caso de uso, Hadoop fornecerá algumas críticas literárias simples comparando Twain e Cooper. O teste FleschKincaid calcula o nível de leitura de um texto em particular. Um dos fatores nesta análise é o comprimento médio da frase. Parar sentenças resulta ser mais complicado do que apenas procurar o caráter do período. O pacote openNLP e o pacote Python NLTK possuem excelentes analisadores de orações. Por simplicidade, o exemplo mostrado na Listagem 8 usará o comprimento da palavra como substituto do número de sílabas em uma palavra. Se você quer levar isso para o próximo nível, implemente o teste FleschKincaid no MapReduce, rastreie a web e calcule os níveis de leitura para seus sites de notícias favoritos. Lista 8. Uma crítica literária do mapper baseada em Python A saída do mapeador, para a palavra Twain, seria: 5 0. Os comprimentos da palavra numérica são ordenados por ordem e apresentados ao redutor em ordem ordenada. Nos exemplos mostrados nas Classificações 9 e 10, não é necessário classificar os dados para obter a saída correta, mas o tipo é incorporado na infra-estrutura MapReduce e acontecerá de qualquer maneira. Listagem 9. Um redutor AWK para crítica literária Listagem 10. Executando um mapeador Python e um redutor AWK com Hadoop Streaming Os fãs Mark Twain podem relaxar feliz sabendo que Hadoop encontra Cooper para usar palavras mais longas e com um desvio padrão chocante (humor pretendido). Isso, é claro, pressupõe que as palavras mais curtas são melhores. Vamos continuar, a seguir é escrever dados em HDFS para Informix e DB2. Usando o Sqoop para gravar dados do HDFS no Informix, DB2 ou MySQL via JDBC O Projeto Sqoop Apache é um utilitário de movimentação de dados Hadoop baseado em JDBC baseado em código aberto. O Sqoop foi originalmente criado em um hackathon em Cloudera e depois foi aberto. Mover dados de HDFS para um banco de dados relacional é um caso de uso comum. HDFS e Map-Reduce são excelentes ao fazer o levantamento pesado. Para consultas simples ou uma loja back-end para um site, armazenar em cache o resultado Map-Reduce em uma loja relacional é um bom padrão de design. Você pode evitar voltar a executar a contagem de palavras Map-Reduce, apenas usando os resultados no Informix e no DB2. Você gerou dados sobre Twain e Cooper, agora vamos movê-lo para um banco de dados, conforme mostrado no Listado 11. Listagem 11. Configuração do driver JDBC Os exemplos apresentados nas Listagens 12 a 15 são apresentados para cada banco de dados. Salte o exemplo de interesse para você, incluindo Informix, DB2 ou MySQL. Para os poligotos do banco de dados, divirta-se fazendo todos os exemplos. Se o seu banco de dados de escolha não estiver incluído aqui, não será um grande desafio fazer essas amostras funcionarem em outro lugar. Lista 12. Usuários do Informix: Sqoop escrevendo os resultados da contagem de palavras para o Listado Informix 13. Usuários do Informix: Sqoop escrevendo os resultados da contagem de palavras para a lista de Informix 14. Usuários do DB2: Sqoop escrevendo os resultados da contagem de palavras para o Listado 15 do DB2 . Usuários MySQL: Sqoop escrevendo os resultados da contagem de palavras para MySQL Importando dados para HDFS a partir do Informix e do DB2 com o Sqoop A inserção de dados no Hadoop HDFS também pode ser realizada com o Sqoop. A funcionalidade bidirecional é controlada através do parâmetro de importação. Os bancos de dados de exemplo que vêm com ambos os produtos têm alguns conjuntos de dados simples que você pode usar para esse propósito. A Listagem 16 mostra a sintaxe e os resultados para o Sqooping de cada servidor. Para usuários do MySQL, adapte a sintaxe dos exemplos do Informix ou DB2 que se seguem. Listagem 16. Importação de Sqoop do banco de dados de exemplo do Informix para HDFS Por que existem quatro arquivos diferentes, cada um contendo apenas parte dos dados O Sqoop é um utilitário altamente paralelizado. Se um cluster de 4000 nodos executando o Sqoop fez uma importação completa do acelerador de um banco de dados, as 4000 conexões pareceriam muito como um ataque de negação de serviço contra o banco de dados. O limite de conexão padrão do Sqoops é quatro conexões JDBC. Cada conexão gera um arquivo de dados no HDFS. Assim, os quatro arquivos. Para não se preocupar, você verá como o Hadoop funciona nesses arquivos sem qualquer dificuldade. O próximo passo é importar uma tabela do DB2. Como mostrado na Listagem 17, especificando a opção - m 1, uma tabela sem uma chave primária pode ser importada e o resultado é um único arquivo. Listagem 17. Importação Sqoop do banco de dados de exemplo do DB2 para o HDFS Usando a Arganha: unindo dados do Informix e do DB2 Existe um caso de uso interessante para juntar dados do Informix ao DB2. Não é muito emocionante para duas mesas triviais, mas uma enorme vitória para vários terabytes ou petabytes de dados. Existem duas abordagens fundamentais para juntar diferentes fontes de dados. Deixando os dados em repouso e usando a tecnologia de federação versus mover os dados para uma única loja para realizar a junção. A economia e o desempenho do Hadoop tornam a transferência de dados para o HDFS e a realização do levantamento pesado com o MapReduce, uma escolha fácil. As limitações de largura de banda da rede criam uma barreira fundamental se tentar juntar dados em repouso com uma tecnologia de estilo de federação. A Hive fornece um subconjunto de SQL para operar em um cluster. Não fornece semântica de transações. Não é um substituto para Informix ou DB2. Se você tem algum levantamento pesado na forma de juntas de mesa, mesmo que você tenha algumas mesas menores, mas que precise fazer produtos desossosos, o Hadoop é a ferramenta de escolha. Para usar a linguagem de consulta do Hive, um subconjunto de SQL chamado metadados da tabela Hiveql é necessário. Você pode definir os metadados contra arquivos existentes no HDFS. O Sqoop fornece um atalho conveniente com a opção create-hive-table. Os usuários do MySQL devem se sentir livres para adaptar os exemplos mostrados na Listagem 18. Um exercício interessante seria juntar o MySQL, ou qualquer outra tabela de banco de dados relacional, para grandes planilhas. Listagem 18. Juntando a tabela informix. customer à tabela db2.staff É muito mais bonita quando você usa Hue para uma interface gráfica do navegador, como mostrado nas Figuras 9, 10 e 11. Figura 9. GUI de cera de abelha para colméia em CDH4 , Veja a consulta do Hiveql Figura 10. Hue Beeswax GUI for Hive, veja a consulta do Hiveql Figura 11. Hue Beeswax, navegador gráfico, veja o resultado da junção do Informix-DB2 Usando o Porco: unindo os dados do Informix e do DB2 Pig é um idioma processual. Assim como a Hive, sob as capas, ele gera o código MapReduce. A facilidade de uso do Hadoop continuará a melhorar à medida que mais projetos estiverem disponíveis. Tanto quanto alguns de nós realmente gostam da linha de comando, existem várias interfaces gráficas de usuário que funcionam muito bem com o Hadoop. O Listado 19 mostra o código do Porco que é usado para juntar a tabela do cliente e a tabela do pessoal do exemplo anterior. Lista 19. Exemplo de porco para se juntar à tabela Informix para a tabela do DB2. Como escolho Java, Hive ou Pig. Você tem várias opções para programação do Hadoop e é melhor examinar o caso de uso para escolher a ferramenta certa para o trabalho . Você não está limitado a trabalhar em dados relacionais, mas este artigo está focado em Informix, DB2 e Hadoop jogando bem juntos. Escrever centenas de linhas em Java para implementar um estilo relacional hash-join é um completo desperdício de tempo, já que esse algoritmo Hadoop MapReduce já está disponível. Como você escolhe Esta é uma questão de preferência pessoal. Alguns, como operações de configuração de codificação em SQL. Alguns preferem o código processual. Você deve escolher o idioma que o tornará mais produtivo. Se você possui vários sistemas relacionais e quer combinar todos os dados com ótimo desempenho em um ponto de preço baixo, Hadoop, MapReduce, Hive e Pig estão prontos para ajudar. Não exclua seus dados: rolando uma partição do Informix para HDFS A maioria dos bancos de dados relacionais modernos podem particionar dados. Um caso de uso comum é dividir por período de tempo. Uma janela fixa de dados é armazenada, por exemplo, um intervalo de 18 meses, após o qual os dados são arquivados. A capacidade de partição-partição é muito poderosa. Mas depois que a partição é separada, o que faz com o arquivo de fita de dados antigos é uma maneira muito cara de descartar os bytes antigos. Uma vez movido para um meio menos acessível, os dados são muito raramente acessados, a menos que exista um requisito de auditoria legal. Hadoop fornece uma alternativa muito melhor. Mover os bytes de arquivamento da partição antiga para o Hadoop fornece acesso de alto desempenho com muito menor custo do que manter os dados no sistema original ou datamartdatawarehouse. Os dados são muito antigos para serem de valor transacional, mas ainda são muito valiosos para a organização para análises de longo prazo. Os exemplos Sqoop apresentados anteriormente fornecem os conceitos básicos sobre como mover esses dados de uma partição relacional para HDFS. Fusível - Como chegar aos seus arquivos HDFS via NFS Os dados do arquivo InformixDB2flat no HDFS podem ser acessados ​​via NFS, conforme mostrado na Listagem 20. Isso fornece operações de linha de comando sem usar a interface hadoop fs - yadayada. A partir de uma perspectiva de caso de uso de tecnologia, o NFS é severamente limitado em um ambiente Big Data, mas os exemplos são incluídos para desenvolvedores e dados não tão grandes. Listagem 20. Configurando Fusível - acesse seus dados HDFS via NFS Flume - crie um arquivo pronto para carga Flume próxima geração, ou flume-ng é um carregador paralelo de alta velocidade. Os bancos de dados possuem carregadores de alta velocidade, então, como eles funcionam bem juntos. O caso de uso relacional para Flume-ng é criar um arquivo pronto para carga, local ou remotamente, para que um servidor relacional possa usar seu carregador de alta velocidade. Sim, essa funcionalidade se sobrepõe a Sqoop, mas o script mostrado na Listagem 21 foi criado a pedido de um cliente especificamente para esse estilo de carga de banco de dados. Lista 21. Exportando dados HDFS para um arquivo plano para carregar por um banco de dados Oozie - adicionando fluxo de trabalho para vários trabalhos Oozie encadeará vários trabalhos Hadoop. Há um bom conjunto de exemplos incluídos com oozie que são usados ​​no conjunto de códigos mostrado na Listagem 22. Listagem 22. Controle de trabalho com oozie HBase, uma loja de valor-chave de alto desempenho HBase é uma loja de valor-chave de alto desempenho. Se o seu caso de uso exigir escalabilidade e apenas requer o equivalente ao banco de dados de transações de confirmação automática, o HBase pode ser a tecnologia para montar. O HBase não é um banco de dados. O nome é infeliz desde então, o termo base implica banco de dados. Faz um excelente trabalho para lojas de alto valor de alto valor. Existe alguma sobreposição entre a funcionalidade do HBase, Informix, DB2 e outros bancos de dados relacionais. Para as transações ACID, a conformidade completa do SQL e vários índices, uma base de dados relacional tradicional é a escolha óbvia. Este último exercício de código é dar familiaridade básica com a HBASE. É simples por design e de forma alguma representa o escopo da funcionalidade HBases. Use este exemplo para entender algumas das capacidades básicas do HBase. HBase, The Definitive Guide, de Lars George, é uma leitura obrigatória se você planeja implementar ou rejeitar a HBase para seu caso de uso particular. Este último exemplo, mostrado nas Listagens 23 e 24, usa a interface REST fornecida com HBase para inserir valores-chave em uma tabela HBase. O arnês de teste é baseado em curvatura. Lista 23. Criar uma tabela HBase e inserir uma linha Listagem 24. Usando a interface HBase REST Conclusão Wow, você chegou ao fim, bem feito Este é apenas o início da compreensão do Hadoop e sua interação com o Informix e o DB2. Aqui estão algumas sugestões para os próximos passos. Pegue os exemplos mostrados anteriormente e adapte-os aos seus servidores. Você quer usar dados pequenos, pois não há muito espaço na imagem virtual. Seja certificado como administrador do Hadoop. Visite o site Cloudera para cursos e informações de teste. Seja certificado como um desenvolvedor Hadoop. Inicie um cluster usando a edição gratuita do Cloudera Manager. Comece com o IBM Big Sheets executando o CDH4. Recursos para download Informações relacionadasOpenShift, Kubernetes, Docker e Apache Hadoop YARN Arun Murthy Na Hortonworks, estamos sempre observando tendências emergentes no datacenter para encontrar oportunidades para uma integração mais profunda do ecossistema com o Apache Hadoop de maneiras simples e intuitivas. Em primeiro lugar, fizemos parceria com a OpenShift pela Red Hat no início deste ano, quando permitimos chamar os serviços Hadoop da OpenShift via cartuchos. Você pode ler mais sobre essa solução aqui. À medida que as ofertas da Enterprise Cloud (por exemplo, PaaS) amadureceram para suportar um amplo conjunto de cargas de trabalho, vários clientes perguntaram sobre como as iniciativas Big Data e PaaS centradas no Hadoop poderiam funcionar em conjunto, particularmente à luz de Apache Hadoop YARN sendo o multi - Gerente de recursos de carga de trabalho para carga de trabalho em lote, interativo e em tempo real no Hadoop. Docker e Google Kubernetes têm comunidades em rápido crescimento e expandindo a conscientização, mesmo que a Microsoft adicionou algum suporte da Kubernet para a execução no Azure. No entanto, a participação de outros parceiros também chamou nossa atenção, a OpenShift da Red Hat estava se movendo para tornar essas tecnologias o núcleo de sua plataforma PaaS de próxima geração. To us, it seemed like a great opportunity to help bring the two worlds together for our customers Hadoop and PaaS and ensure that with YARN we can provide: Common resource management across data and PaaS workloads and manage them seamlessly and elastically. Deeper insights and information gleaned from data in the enterprise not merely limit Hadoop to data processing applications and data services. Our strategy for making this happen is to work closely in the open source community to develop these new capabilities upstream to drive innovation and integration that can then be brought to market in a stable and tested manner. We share this strategy with Red Hat and are working together to integrate YARN into the Kubernetes pluggable scheduler position as an option found in OpenShift v3 . OpenShift transforms PaaS In the world of PaaS, there is a rapid shift from legacy, heavyweight virtual machines to lightweight and secure containers . Red Hat is a leading contributor to the Docker community, and OpenShift v3 is an exciting new initiative by Red Hat to provide a unified DevOps experience built on a best-of-breed technology stack leveraging Project Atomic. Docker and Google Kubernetes aligned with an intuitive user experience. OpenShift has managed to preserve its developer workflow while commoditizing its architecture to align with industry standards. In one simple motion OpenShift has grown its reference architecture to include that of both the Docker and Google communities. OpenShift has become an epicenter for how PaaS use cases are instrumented on these highly coveted technologies. This consolidation of open source technology initiatives promises to change the way applications are built and deployed in a PaaS environment. YARN and Multi-tenant Data Lakes In todays Hadoop deployments, we at Hortonworks see very large clusters spanning thousands of machines and petabytes of data on commodity hardware in the customer datacenter. As organizations scale their Hadoop deployments, they want to run more analytic applications with different data access paradigms batch, interactive, real-time, streaming etc. all that need to access the data simultaneously. These data lake deployments are enabled by a modern data architecture powered by YARN, to provide a robust and comprehensive solution for the most demanding Hadoop environments. In addition to powering a rich variety of Hadoop processing engines, YARN is being embraced by key industry-leading analytic software vendors to leverage and extract compute and data resources from existing Hadoop clusters and extend Hadoop with very rich analytic capabilities. Big Data and PaaSBetter Together So far, enterprises have deployed and managed separate infrastructures for Hadoop and PaaS. This leads to fragmentation of compute resources and infrastructure silos with duplicate provisioning, management and monitoring tools. By leveraging Hadoop YARN as the underlying resource management infrastructure for both workloads we get obvious benefits of seamlessly sharing resources. Imagine this: as you roll out a seasonal campaign to customers wouldnt it be nice to temporarily, and painlessly, borrow a few resources from your data workloads via YARN and then return after a few days or weeks. The alternative today, as many IT departments are painfully aware, is they need to plan in advance, procure new hardware and then decommission at the end of the campaign a few weeks later 8211 very involved indeed This seriously affects agility and speed at which enterprises can bring new products and services to the market YARN and OpenShift come to the rescue. From the lens of data workers in the Hadoop world 8211 this integration provides a very important capability of leveraging OpenShift to present the insights teased from their datasets in simple and intuitive ways. For example, one can now use Pig or Hive to cleanse data, to build models and then immediately turn that analysis into an interactive web application by deploying Shiny in OpenShift. This allows data to turn into actionable insight seamlessly YARNBig Data and PaaS Together By integrating OpenShift with Hadoop YARN, Red Hat and Hortonworks customers can now benefit from: Predictable elastic resource management for co-existing Hadoop workloads and OpenShift application platform workloads. Unified Resource Management console for managing OpenShift and Hadoop resources. Turn data into actionable insights that can be presented seamlessly to the entire organization. Integrating OpenShift by Red Hat, Google Kubernetes, and Docker with Apache Hadoop YARN provides tremendous benefits to customers using OpenShift and Hadoop. It is a great example of the openness and vision shown by Red Hat and how Hadoop YARN is emerging as an intelligent scheduler plugin to OpenShift in the datacenter and public cloud by helping drive this community-driven innovation. We hope you will join us on this exciting journey Discover and Learn More Categories: THE IMPLICATIONS OF BIG DATA ON MANUFACTURING: HOW TO SUPERCHARGE YOUR REAL-TIME CONNECTED SUPPLY CHAIN For years, supply chain professionals in manufacturing industries have been aspiring to create a truly demand-driven supply chain. Actual progress, in reality, has been slowed by both the limited availability of real-time supply chain data and the inability to dynamically optimize actions based on this information. However, as the Big Data movement continues to revolutionizehellip Hortonworks 2017 Year in Review As we kick off the new year I wanted to thank our customers, partners, Apache community members, and of course the amazing Hortonworks team, for an amazing 2017. Lets take a step back and look at some of the Hortonworks highlights from last year. IN THE ECOSYSTEM there was tremendous acceleration. At the beginning ofhellip The Four Strategic Business drivers in the Open Banking Age.. This is the third in a series of four posts on the Open Banking Standard (OBS) in the UK. This second post will briefly look at the strategic drivers for banks while proposing an architectural style or approach for incumbents to drive change in their platforms to achieve OBS Compliance. The final post will discuss ahellip Apache, Hadoop, Falcon, Atlas, Tez, Sqoop, Flume, Kafka, Pig, Hive, HBase, Accumulo, Storm, Solr, Spark, Ranger, Knox, Ambari, ZooKeeper, Oozie, Metron and the Hadoop elephant and Apache project logos are either registered trademarks or trademarks of the Apache Software Foundation in the United States or other countries.

No comments:

Post a Comment