SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Big Data – Hadoop, MapReduce, HDFS e Hive
Bigdatabrazil.blogspot.com
O que é o Hadoop ?
O Hadoop é um projeto de software livre desenvolvido pela Apache Software
Foundation (http://apache.org/ ), que é uma plataforma de computação
distribuida, com alta escalabilidade, grande confiabilidade e tolerância a falhas.
A biblioteca de software Hadoop (http://hadoop.apache.org/) é um framework
que permite o processamento distribuído de grandes conjuntos de dados
através de clusters de computadores usando modelos de programação
simples. Ele é projetado para garantir larga escalabilidade partindo de um único
servidor até um cluster com milhares de máquinas, cada uma oferecendo
capacidade de computação e armazenamento local. Em vez de confiar em
hardware para proporcionar maior disponibilidade, a própria biblioteca foi
concebida para detectar e tratar falhas na camada de aplicação, de modo a
fornecer um serviço com alta disponibilidade baseado em um grid de
computadores.
Além da biblioteca base escrita em Java, chamada Hadoop Common , temos o
HDFS (Hadoop Distributed File System), o YARN e o MapReduce que é um
sistema voltado para processamento de dados com alta escalabilidade e
paralelismo. Podemos criar programas em Java usando a biblioteca
MapReduce (org.apache.hadoop.mapreduce.*) para processar grandes
quantidades de dados em poucos segundos. Realizar uma operação de sort
(ordenação) usando o Hadoop já leva menos de 60 segundos. Além de
executar programas em Java, podem ser executadas funções em Ruby, Python
e Pipes (C++).
Recomendo a leitura do Livro Hadoop The Definitive Guide de Tom White.
Utilizando o MapReduce
O MapReduce é um conjunto de bibliotecas que permite realizar
processamento em paralelo, de grandes quantidades de dados, usando todo o
hardware disponível no cluster Hadoop, dividindo este processamento em 2
etapas, uma chamada Map, que é o mapeamento e validação dos dados e a
outra chamada Reduce, que tem como entrada o resultado da fase Map
anterior, gerando o resultado final. Utiliza-se normalmente processamento de
pares de valores chaves.
Como exemplo de uso na indústria de óleo e gás, podemos obter milhares de
arquivos de logs em formato texto, com informações de pressão e temperatura
oriundas de um poço, mapear e validar os dados destes arquivos e em um
segundo passo obter a maior temperatura e pressão do conjunto analisado.
Esta tarefa pode ser feita usando programas em Java. Neste caso teríamos um
programa para realizar o mapeamento, um programa para realizar a redução e
um programa controlador que executa os outros dois. A API Java MapReduce
se encarrega de resolver todas as complexidades do processamento paralelo,
deixando a cargo do programador apenas a lógica de realizar a validação e
iteração nos conjuntos de dados.
Para realizar testes com a biblioteca MapReduce, devemos obter uma versão
do Hadoop, realizando o download do software a partir do site da Apache.
Caso deseje executar em um computador com sistema Windows, será
necessário instalar também o Cygwin. É necessário também instalar o JDK ,
configurar as variáveis Java Home, Hadoop Home, Classpath e Hadoop
Classpath. Conhecimentos de configuração de ambiente Java e Classpath são
importantes nesta fase de configuração do ambiente.
MapReduce e Amazon Elastic MapReduce
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 serem
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.
- Amazon Elastic MapReduce
O Amazon Elastic MapReduce (EMR) realiza uma implementação do
framework MapReduce nas instâncias do Amazon EC2, subdividindo os dados
de um fluxo de trabalho em partes menores para que possam ser processados
( Map ) paralelamente e, por fim, recombinando os dados processados na
solução final ( Reduce ). O Amazon S3 atua como fonte dos dados que estão
sendo analisados e como destino de saída dos resultados finais. Para realizar
o processamento utiliza uma arquitetura baseada em Master - Workers ou
Slaves.
Um cluster Hadoop rodando no Amazon EMR pode utilizar instãncias virtuais
de servidores Linux como mestres e escravos, pode utilizar o Amazon S3
como bulk storage dos dados de input e output , e o Amazon CloudWatch para
monitorar a performance do cluster e lançar alertas.
O que é o HDFS ?
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 distribuição de arquivos e metadados. Já o
Worker armazena os dados propriamente ditos. Logo o Master precisa sempre
estar disponível. Para garantir a disponibilidade podemos ter um backup (
similar ao Cold Failover ) ou termos um Master Secundário em um outro
servidor. Nesta segunda opção, em caso de falha do primário, o secundário
pode assumir o controle muito rapidamente.
Tal como um sistema Unix, é possível utilizar o HDFS via linha de comando.
Para saber a lista de comandos digite hadoop fs -help. É possível criar
diretórios (mkdir), listar diretório (ls) , copiar arquivos (copyFromLocal,
copyToLocal), permissionamento de arquivos e diretórios, etc.
A classe java abstrata org.apache.hadoop.fs.Filesystem pode ser
implementada de forma concreta usando o HDFS, FTP, S3 (Amazon Native),
S3 (block-based), etc. Utilizando programas simples em java também é
possível listar arquivos, diretórios, copiar arquivos, ler dados, gravar dados, etc.
A figura abaixo, extraída do livro Hadoop The Definitive Guide de Tom White,
mostra como é realizada a leitura de um arquivo no HDFS.
Como vimos no post anterior do dia 09 de Julho é possível, ao invés de
armazenar os dados em um HDFS na própria empresa ou residência,
armazenar na nuvem em um provedor que possa ter a melhor relação custo
benefício e maior disponibilidade possível, tal como a Amazon Web Services
(aws.amazon.com).
A AWS oferece um conjunto completo de serviços de aplicativos e
infraestrutura que permitem que você execute praticamente tudo na nuvem:
desde aplicativos empresariais e projetos de Big Data a jogos sociais e
aplicativos móveis.
Grandes empresas como SAP, Adobe, Netflix e Nasdaq já usam os serviços
de computação na nuvem da Amazon.
A Netflix mantém um blog de tecnologia ( techblog.netflix.com ), no qual explica
com detalhes como utiliza o Hadoop, tendo como meio de armazenamento o
Amazon Simple Storage Service.
http://techblog.netflix.com/2013/01/hadoop-platform-as-service-in-cloud.html
Hive, o que é ?
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 desenvolvedores do
Facebook, que não eram na época tão proficientes em Java para usar o
MapReduce. Atualmente é um projeto da Apache ( http://hive.apache.org).
Como a finalidade principal do Hive é analisar dados, o mesmo deve ser capaz
de se integrar com soluções de Business Intelligence existentes no mercado.
Hive utiliza uma linguagem chamada HiveQL (Hive Query Language) , que
transforma as sentenças SQL em Jobs MapReduce executados no cluster
Hadoop.
Os comados existentes no SQL tais como create table, select, describe, drop
table, etc existem no Hive, mas tem diferenças tal como a clausula ROW
FORMAT do create table. Para popular tabelas pode ser utilizado o comando
LOAD DATA , que obtém a entrada de dados e carrega no warehouse do Hive.
Podem ser utilizados agregadores como Max, SUM, Count, etc que necessitam
da clausula GROUP BY, tal como no SQL.
Para acessar os dados podem ser utilizadas a própria interface de comandos,
drivers JDBC, drivers ODBC e o Hive Thrift Client (para C++, Python, Ruby,
etc). Possibilita acessar dados que estejam no sistema de arquivos HDFS, em
outros sistemas de arquivos (ex. Amazon S3) ou no HBASE. Abaixo está uma
figura que descreve a arquitetura do Hive.
Para suportar schemas e partitioning o Hive deve manter os seus metadados
em um banco relacional, podendo ser utilizado o Derby ou o MySQL. Ao inserir
dados no Hive, caso haja violação nos tipos de dados do schema, o mesmo
será gravado Null, não havendo interrupção da entrada de dados. O
particionamento de tabelas (partitioning) permite aumentar a performance das
queries executadas. As partições são armazenadas em diretórios diferentes,
buscando otimizar o acesso na leitura do disco. Assim como os bancos
relacionais suporta Joins e Outer Joins.
O Hive não foi desenhado para executar queries em real time, com baixa
latência. Foi desenhado para melhor performance analisando grandes
quantidades de dados que se encontram em clusters. Normalmente são estes
tipos de queries que temos em painéis analíticos de aplicações de Business
Intelligence, que usualmente utilizam operadores do tipo Sum, Count, etc, que
em ambientes usuais de data warehouse podem consumir horas para que
estes tipos de query retornem resultado. Já passei por este tipo de situação na
qual ferramentas de BI ao acessar uma quantidade de dados muito grandes em
bases tradicionais simplesmente tem uma performance tão pobre que o seu
uso pelos clientes finais e dashboards (painéis analíticos) é inviabilizado.
Recomendo o livro abaixo sobre o Hive.
Bigdatabrazil.blogspot.com

Mais conteúdo relacionado

Mais procurados

HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
Simplilearn
 
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
Simplilearn
 
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
Simplilearn
 

Mais procurados (20)

Hadoop HDFS Architeture and Design
Hadoop HDFS Architeture and DesignHadoop HDFS Architeture and Design
Hadoop HDFS Architeture and Design
 
Arquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceArquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open source
 
Sqoop
SqoopSqoop
Sqoop
 
Hadoop Tutorial For Beginners
Hadoop Tutorial For BeginnersHadoop Tutorial For Beginners
Hadoop Tutorial For Beginners
 
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
 
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
 
Apache hive
Apache hiveApache hive
Apache hive
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
What is Hadoop | Introduction to Hadoop | Hadoop Tutorial | Hadoop Training |...
What is Hadoop | Introduction to Hadoop | Hadoop Tutorial | Hadoop Training |...What is Hadoop | Introduction to Hadoop | Hadoop Tutorial | Hadoop Training |...
What is Hadoop | Introduction to Hadoop | Hadoop Tutorial | Hadoop Training |...
 
Hadoop HDFS.ppt
Hadoop HDFS.pptHadoop HDFS.ppt
Hadoop HDFS.ppt
 
Apache HBase™
Apache HBase™Apache HBase™
Apache HBase™
 
Hadoop And Their Ecosystem
 Hadoop And Their Ecosystem Hadoop And Their Ecosystem
Hadoop And Their Ecosystem
 
Introduction to Apache Hive
Introduction to Apache HiveIntroduction to Apache Hive
Introduction to Apache Hive
 
HDFS Architecture
HDFS ArchitectureHDFS Architecture
HDFS Architecture
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
Big Data Technology Stack : Nutshell
Big Data Technology Stack : NutshellBig Data Technology Stack : Nutshell
Big Data Technology Stack : Nutshell
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Spark
 
Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...
Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...
Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...
 
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
 
Hadoop Hive Tutorial | Hive Fundamentals | Hive Architecture
Hadoop Hive Tutorial | Hive Fundamentals | Hive ArchitectureHadoop Hive Tutorial | Hive Fundamentals | Hive Architecture
Hadoop Hive Tutorial | Hive Fundamentals | Hive Architecture
 

Destaque

Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Flavio Fonte, PMP, ITIL
 
Projeto Elevador Manual
Projeto Elevador ManualProjeto Elevador Manual
Projeto Elevador Manual
Ericbirth
 

Destaque (20)

Hadoop - Primeiros passos
Hadoop - Primeiros passosHadoop - Primeiros passos
Hadoop - Primeiros passos
 
Treinamento hadoop - dia1
Treinamento hadoop - dia1Treinamento hadoop - dia1
Treinamento hadoop - dia1
 
BIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaBIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à Pratica
 
Treinamento Hadoop - dia2
Treinamento Hadoop - dia2Treinamento Hadoop - dia2
Treinamento Hadoop - dia2
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigData
 
Proposta de arquitetura Hadoop
Proposta de arquitetura HadoopProposta de arquitetura Hadoop
Proposta de arquitetura Hadoop
 
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
 
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
Hackathons & Innovation: como engajar desenvolvedores em torno da sua empresa...
 
Em que momento a infraestrutura de servidores e administração dos recursos de...
Em que momento a infraestrutura de servidores e administração dos recursos de...Em que momento a infraestrutura de servidores e administração dos recursos de...
Em que momento a infraestrutura de servidores e administração dos recursos de...
 
Infraestrutura de Servidores - Anchieta
Infraestrutura de Servidores - AnchietaInfraestrutura de Servidores - Anchieta
Infraestrutura de Servidores - Anchieta
 
Projeto Elevador Manual
Projeto Elevador ManualProjeto Elevador Manual
Projeto Elevador Manual
 
5 maneiras de colocar sua empresa online
5 maneiras de colocar sua empresa online5 maneiras de colocar sua empresa online
5 maneiras de colocar sua empresa online
 
Mercado financeiro brasileiro Artigo
Mercado financeiro brasileiro ArtigoMercado financeiro brasileiro Artigo
Mercado financeiro brasileiro Artigo
 
Calibração de sensores de temperatura
Calibração de sensores de temperaturaCalibração de sensores de temperatura
Calibração de sensores de temperatura
 
Calibração de sensores de temperatura nbr
Calibração de sensores de temperatura nbrCalibração de sensores de temperatura nbr
Calibração de sensores de temperatura nbr
 
Medidores de Vazão Eletromagnéticos
Medidores de Vazão EletromagnéticosMedidores de Vazão Eletromagnéticos
Medidores de Vazão Eletromagnéticos
 
Treinamento operador de empilhadeira
Treinamento operador de empilhadeiraTreinamento operador de empilhadeira
Treinamento operador de empilhadeira
 
Apostila para operadores de empilhadeira.
Apostila para operadores de empilhadeira.Apostila para operadores de empilhadeira.
Apostila para operadores de empilhadeira.
 

Semelhante a Big Data - O que é o hadoop, map reduce, hdfs e hive

Semelhante a Big Data - O que é o hadoop, map reduce, hdfs e hive (20)

Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passos
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 
Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema.
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
Big Data Open Source com Hadoop
Big Data Open Source com HadoopBig Data Open Source com Hadoop
Big Data Open Source com Hadoop
 
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - CuritibaPalestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
 
Interoperabilidade com BigData Hadoop para Windows Azure
Interoperabilidade com BigData Hadoop  para Windows AzureInteroperabilidade com BigData Hadoop  para Windows Azure
Interoperabilidade com BigData Hadoop para Windows Azure
 
Qcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes WorkshopQcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes Workshop
 
Data Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na práticaData Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na prática
 
Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...
 
Hadoop
HadoopHadoop
Hadoop
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop
HadoopHadoop
Hadoop
 
Amazon emr cluster hadoop pronto para usar na nuvem aws
Amazon emr   cluster hadoop pronto para usar na nuvem awsAmazon emr   cluster hadoop pronto para usar na nuvem aws
Amazon emr cluster hadoop pronto para usar na nuvem aws
 
Big Data, JVM e Redes Sociais
Big Data, JVM e Redes SociaisBig Data, JVM e Redes Sociais
Big Data, JVM e Redes Sociais
 
Ciclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do HadoopCiclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do Hadoop
 

Último

Último (9)

Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
 
Convergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor SucroenergéticoConvergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor Sucroenergético
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 

Big Data - O que é o hadoop, map reduce, hdfs e hive

  • 1. Big Data – Hadoop, MapReduce, HDFS e Hive Bigdatabrazil.blogspot.com O que é o Hadoop ? O Hadoop é um projeto de software livre desenvolvido pela Apache Software Foundation (http://apache.org/ ), que é uma plataforma de computação distribuida, com alta escalabilidade, grande confiabilidade e tolerância a falhas. A biblioteca de software Hadoop (http://hadoop.apache.org/) é um framework que permite o processamento distribuído de grandes conjuntos de dados através de clusters de computadores usando modelos de programação simples. Ele é projetado para garantir larga escalabilidade partindo de um único servidor até um cluster com milhares de máquinas, cada uma oferecendo capacidade de computação e armazenamento local. Em vez de confiar em hardware para proporcionar maior disponibilidade, a própria biblioteca foi concebida para detectar e tratar falhas na camada de aplicação, de modo a fornecer um serviço com alta disponibilidade baseado em um grid de computadores. Além da biblioteca base escrita em Java, chamada Hadoop Common , temos o HDFS (Hadoop Distributed File System), o YARN e o MapReduce que é um sistema voltado para processamento de dados com alta escalabilidade e paralelismo. Podemos criar programas em Java usando a biblioteca MapReduce (org.apache.hadoop.mapreduce.*) para processar grandes quantidades de dados em poucos segundos. Realizar uma operação de sort (ordenação) usando o Hadoop já leva menos de 60 segundos. Além de executar programas em Java, podem ser executadas funções em Ruby, Python e Pipes (C++). Recomendo a leitura do Livro Hadoop The Definitive Guide de Tom White.
  • 2. Utilizando o MapReduce O MapReduce é um conjunto de bibliotecas que permite realizar processamento em paralelo, de grandes quantidades de dados, usando todo o hardware disponível no cluster Hadoop, dividindo este processamento em 2 etapas, uma chamada Map, que é o mapeamento e validação dos dados e a outra chamada Reduce, que tem como entrada o resultado da fase Map anterior, gerando o resultado final. Utiliza-se normalmente processamento de pares de valores chaves. Como exemplo de uso na indústria de óleo e gás, podemos obter milhares de arquivos de logs em formato texto, com informações de pressão e temperatura oriundas de um poço, mapear e validar os dados destes arquivos e em um segundo passo obter a maior temperatura e pressão do conjunto analisado. Esta tarefa pode ser feita usando programas em Java. Neste caso teríamos um programa para realizar o mapeamento, um programa para realizar a redução e um programa controlador que executa os outros dois. A API Java MapReduce se encarrega de resolver todas as complexidades do processamento paralelo, deixando a cargo do programador apenas a lógica de realizar a validação e iteração nos conjuntos de dados. Para realizar testes com a biblioteca MapReduce, devemos obter uma versão do Hadoop, realizando o download do software a partir do site da Apache. Caso deseje executar em um computador com sistema Windows, será necessário instalar também o Cygwin. É necessário também instalar o JDK , configurar as variáveis Java Home, Hadoop Home, Classpath e Hadoop Classpath. Conhecimentos de configuração de ambiente Java e Classpath são importantes nesta fase de configuração do ambiente.
  • 3. MapReduce e Amazon Elastic MapReduce 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 serem 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.
  • 4. - Amazon Elastic MapReduce O Amazon Elastic MapReduce (EMR) realiza uma implementação do framework MapReduce nas instâncias do Amazon EC2, subdividindo os dados de um fluxo de trabalho em partes menores para que possam ser processados ( Map ) paralelamente e, por fim, recombinando os dados processados na solução final ( Reduce ). O Amazon S3 atua como fonte dos dados que estão sendo analisados e como destino de saída dos resultados finais. Para realizar o processamento utiliza uma arquitetura baseada em Master - Workers ou Slaves.
  • 5. Um cluster Hadoop rodando no Amazon EMR pode utilizar instãncias virtuais de servidores Linux como mestres e escravos, pode utilizar o Amazon S3 como bulk storage dos dados de input e output , e o Amazon CloudWatch para monitorar a performance do cluster e lançar alertas. O que é o HDFS ? 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 distribuição de arquivos e metadados. Já o Worker armazena os dados propriamente ditos. Logo o Master precisa sempre estar disponível. Para garantir a disponibilidade podemos ter um backup (
  • 6. similar ao Cold Failover ) ou termos um Master Secundário em um outro servidor. Nesta segunda opção, em caso de falha do primário, o secundário pode assumir o controle muito rapidamente. Tal como um sistema Unix, é possível utilizar o HDFS via linha de comando. Para saber a lista de comandos digite hadoop fs -help. É possível criar diretórios (mkdir), listar diretório (ls) , copiar arquivos (copyFromLocal, copyToLocal), permissionamento de arquivos e diretórios, etc. A classe java abstrata org.apache.hadoop.fs.Filesystem pode ser implementada de forma concreta usando o HDFS, FTP, S3 (Amazon Native), S3 (block-based), etc. Utilizando programas simples em java também é possível listar arquivos, diretórios, copiar arquivos, ler dados, gravar dados, etc. A figura abaixo, extraída do livro Hadoop The Definitive Guide de Tom White, mostra como é realizada a leitura de um arquivo no HDFS. Como vimos no post anterior do dia 09 de Julho é possível, ao invés de armazenar os dados em um HDFS na própria empresa ou residência, armazenar na nuvem em um provedor que possa ter a melhor relação custo benefício e maior disponibilidade possível, tal como a Amazon Web Services (aws.amazon.com). A AWS oferece um conjunto completo de serviços de aplicativos e infraestrutura que permitem que você execute praticamente tudo na nuvem: desde aplicativos empresariais e projetos de Big Data a jogos sociais e aplicativos móveis. Grandes empresas como SAP, Adobe, Netflix e Nasdaq já usam os serviços de computação na nuvem da Amazon. A Netflix mantém um blog de tecnologia ( techblog.netflix.com ), no qual explica com detalhes como utiliza o Hadoop, tendo como meio de armazenamento o Amazon Simple Storage Service. http://techblog.netflix.com/2013/01/hadoop-platform-as-service-in-cloud.html
  • 7. Hive, o que é ? 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 desenvolvedores do Facebook, que não eram na época tão proficientes em Java para usar o MapReduce. Atualmente é um projeto da Apache ( http://hive.apache.org). Como a finalidade principal do Hive é analisar dados, o mesmo deve ser capaz de se integrar com soluções de Business Intelligence existentes no mercado.
  • 8. Hive utiliza uma linguagem chamada HiveQL (Hive Query Language) , que transforma as sentenças SQL em Jobs MapReduce executados no cluster Hadoop. Os comados existentes no SQL tais como create table, select, describe, drop table, etc existem no Hive, mas tem diferenças tal como a clausula ROW FORMAT do create table. Para popular tabelas pode ser utilizado o comando LOAD DATA , que obtém a entrada de dados e carrega no warehouse do Hive. Podem ser utilizados agregadores como Max, SUM, Count, etc que necessitam da clausula GROUP BY, tal como no SQL. Para acessar os dados podem ser utilizadas a própria interface de comandos, drivers JDBC, drivers ODBC e o Hive Thrift Client (para C++, Python, Ruby, etc). Possibilita acessar dados que estejam no sistema de arquivos HDFS, em outros sistemas de arquivos (ex. Amazon S3) ou no HBASE. Abaixo está uma figura que descreve a arquitetura do Hive. Para suportar schemas e partitioning o Hive deve manter os seus metadados em um banco relacional, podendo ser utilizado o Derby ou o MySQL. Ao inserir dados no Hive, caso haja violação nos tipos de dados do schema, o mesmo será gravado Null, não havendo interrupção da entrada de dados. O particionamento de tabelas (partitioning) permite aumentar a performance das queries executadas. As partições são armazenadas em diretórios diferentes, buscando otimizar o acesso na leitura do disco. Assim como os bancos relacionais suporta Joins e Outer Joins. O Hive não foi desenhado para executar queries em real time, com baixa latência. Foi desenhado para melhor performance analisando grandes quantidades de dados que se encontram em clusters. Normalmente são estes tipos de queries que temos em painéis analíticos de aplicações de Business Intelligence, que usualmente utilizam operadores do tipo Sum, Count, etc, que em ambientes usuais de data warehouse podem consumir horas para que estes tipos de query retornem resultado. Já passei por este tipo de situação na qual ferramentas de BI ao acessar uma quantidade de dados muito grandes em bases tradicionais simplesmente tem uma performance tão pobre que o seu uso pelos clientes finais e dashboards (painéis analíticos) é inviabilizado.
  • 9. Recomendo o livro abaixo sobre o Hive. Bigdatabrazil.blogspot.com