Postagens

Mostrando postagens de julho, 2013

Hive, o que é ?

Imagem
Após uma semana voltada para a Jornada Mundial da Juventude no Rio de Janeiro, que foi bastante recompensadora, voltamos ao nosso dia a dia no mundo da tecnologia e falamos sobre o Hive.  O Hive é um framework para soluções de Data Warehousing, que executa no ambiente do Hadoop, construído inicialmente pelo time de desenvolvimento do Facebook em 2007.   Ele nasceu a partir da necessidade de gerenciar, analisar e aprender sobre o comportamento dos usuários a partir dos imensos volumes de dados gerados a cada dia no Facebook.  A escolha pelo Hadoop foi incentivada pelo baixo custo, escalabilidade e evitar a dependência sobre custos de licenças e manutenção anual que são comuns nos bancos de dados do mercado.  Outro ponto também que levou ao desenvolvimento do Hive foi o baixo desempenho das soluções de mercado para realizar operações de Full Scan em grandes volumes de dados.  O Hive foi criado também visando aproveitar os "skills" de uso do SQL dos analistas e de

O que é o HDFS ?

Imagem
O HDFS (Hadoop Distributed File System) é um sistema de arquivos distribuído, projetado para armazenar arquivos muito grandes,  com padrão de acesso aos dados streaming , utilizando clusters de servidores facilmente encontrados no mercado e de baixo ou médio custo.  Não deve ser utilizado para aplicações que precisem de acesso rápido a um determinado registro e sim para aplicações nas quais é necessário ler uma quantidade muito grande de dados.  Outra questão que deve ser observada é que não deve ser utilizado para ler muitos arquivos pequenos, tendo em vista o overhead de memória envolvido. O HDFS possui o conceito de blocos, tal como no Unix, mas seus blocos normalmente têm tamanho de 64MB.  Um arquivo muito grande pode ter blocos armazenados em mais de um servidor.   Com este conceito de blocos de tamanho fixo fica mais fácil calcular as necessidades de armazenamento. O HDFS tem 2 tipos de Nós :  Master (ou Namenode) e Worker (ou Datanode).  O Master armazena informações da

MapReduce e Amazon Elastic MapReduce

Imagem
Antes de falar sobre o HDFS , gostaria de abordar um pouco mais sobre o MapReduce e também sobre o Amazon Elastic MapReduce, que é a oferta da Amazon que possibilita executar jobs MapReduce em um ambiente baseado em Cloud Computing. - MapReduce Um job do MapReduce é uma unidade de trabalho a ser executada, que consiste de dados de input, programas MapReduce ( para realizar as operações de mapeamento e redução ) e as informações de configurações do ambiente.  O Hadoop divide o "job input" , que são os dados a s erem trabalhados, em "splits", que são alocados em diversos nós, que podem ser locais ou remotos.  Para cada split localizado em um bloco HDFS ( Hadoop Distributed File System ) existe uma tarefa MapReduce associada, que pode estar ou não no mesmo nó.   As figuras abaixo, extraídas do livro Hadoop The Definitive Guide de Tom White , mostram como pode ser realizado o encadeamento de tarefas Map e Reduce e a distribuição dos splits nos nós. - A