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

A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...DataWorks Summit/Hadoop Summit
 
DATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAINING
DATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAININGDATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAINING
DATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAININGDatawarehouse Trainings
 
Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...
Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...
Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...Amazon Web Services
 
Presentation upgrade, migrate & consolidate to oracle database 12c &amp...
Presentation   upgrade, migrate & consolidate to oracle database 12c &amp...Presentation   upgrade, migrate & consolidate to oracle database 12c &amp...
Presentation upgrade, migrate & consolidate to oracle database 12c &amp...solarisyougood
 
Apache Spark 3 Dynamic Partition Pruning
Apache Spark 3 Dynamic Partition PruningApache Spark 3 Dynamic Partition Pruning
Apache Spark 3 Dynamic Partition PruningAparup Chatterjee
 
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Databricks
 
Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...
Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...
Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...Simplilearn
 
Building Data Intensive Analytic Application on Top of Delta Lakes
Building Data Intensive Analytic Application on Top of Delta LakesBuilding Data Intensive Analytic Application on Top of Delta Lakes
Building Data Intensive Analytic Application on Top of Delta LakesDatabricks
 
Dealing with Azure Cosmos DB
Dealing with Azure Cosmos DBDealing with Azure Cosmos DB
Dealing with Azure Cosmos DBMihail Mateev
 
Data Warehousing 2016
Data Warehousing 2016Data Warehousing 2016
Data Warehousing 2016Kent Graziano
 
Interactively Querying Large-scale Datasets on Amazon S3
Interactively Querying Large-scale Datasets on Amazon S3Interactively Querying Large-scale Datasets on Amazon S3
Interactively Querying Large-scale Datasets on Amazon S3Amazon Web Services
 
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...Hortonworks
 
Snowflake Company Presentation
Snowflake Company PresentationSnowflake Company Presentation
Snowflake Company PresentationAndrewJiang18
 
"Building Data Warehouse with Google Cloud Platform", Artem Nikulchenko
"Building Data Warehouse with Google Cloud Platform",  Artem Nikulchenko"Building Data Warehouse with Google Cloud Platform",  Artem Nikulchenko
"Building Data Warehouse with Google Cloud Platform", Artem NikulchenkoFwdays
 
Diving into Delta Lake: Unpacking the Transaction Log
Diving into Delta Lake: Unpacking the Transaction LogDiving into Delta Lake: Unpacking the Transaction Log
Diving into Delta Lake: Unpacking the Transaction LogDatabricks
 
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesHudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesNishith Agarwal
 
Hive Data Modeling and Query Optimization
Hive Data Modeling and Query OptimizationHive Data Modeling and Query Optimization
Hive Data Modeling and Query OptimizationEyad Garelnabi
 

Mais procurados (20)

A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
 
Big data e ecossistema hadoop
Big data e ecossistema hadoopBig data e ecossistema hadoop
Big data e ecossistema hadoop
 
DATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAINING
DATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAININGDATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAINING
DATASTAGE AND QUALITY STAGE 9.1 ONLINE TRAINING
 
Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...
Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...
Snowflake: Your Data. No Limits (Session sponsored by Snowflake) - AWS Summit...
 
Operational Data Vault
Operational Data VaultOperational Data Vault
Operational Data Vault
 
Presentation upgrade, migrate & consolidate to oracle database 12c &amp...
Presentation   upgrade, migrate & consolidate to oracle database 12c &amp...Presentation   upgrade, migrate & consolidate to oracle database 12c &amp...
Presentation upgrade, migrate & consolidate to oracle database 12c &amp...
 
Hadoop hdfs
Hadoop hdfsHadoop hdfs
Hadoop hdfs
 
Apache Spark 3 Dynamic Partition Pruning
Apache Spark 3 Dynamic Partition PruningApache Spark 3 Dynamic Partition Pruning
Apache Spark 3 Dynamic Partition Pruning
 
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
 
Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...
Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...
Hadoop Training | Hadoop Training For Beginners | Hadoop Architecture | Hadoo...
 
Building Data Intensive Analytic Application on Top of Delta Lakes
Building Data Intensive Analytic Application on Top of Delta LakesBuilding Data Intensive Analytic Application on Top of Delta Lakes
Building Data Intensive Analytic Application on Top of Delta Lakes
 
Dealing with Azure Cosmos DB
Dealing with Azure Cosmos DBDealing with Azure Cosmos DB
Dealing with Azure Cosmos DB
 
Data Warehousing 2016
Data Warehousing 2016Data Warehousing 2016
Data Warehousing 2016
 
Interactively Querying Large-scale Datasets on Amazon S3
Interactively Querying Large-scale Datasets on Amazon S3Interactively Querying Large-scale Datasets on Amazon S3
Interactively Querying Large-scale Datasets on Amazon S3
 
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
Modern Data Architecture for a Data Lake with Informatica and Hortonworks Dat...
 
Snowflake Company Presentation
Snowflake Company PresentationSnowflake Company Presentation
Snowflake Company Presentation
 
"Building Data Warehouse with Google Cloud Platform", Artem Nikulchenko
"Building Data Warehouse with Google Cloud Platform",  Artem Nikulchenko"Building Data Warehouse with Google Cloud Platform",  Artem Nikulchenko
"Building Data Warehouse with Google Cloud Platform", Artem Nikulchenko
 
Diving into Delta Lake: Unpacking the Transaction Log
Diving into Delta Lake: Unpacking the Transaction LogDiving into Delta Lake: Unpacking the Transaction Log
Diving into Delta Lake: Unpacking the Transaction Log
 
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesHudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilities
 
Hive Data Modeling and Query Optimization
Hive Data Modeling and Query OptimizationHive Data Modeling and Query Optimization
Hive Data Modeling and Query Optimization
 

Destaque

Hadoop - Primeiros passos
Hadoop - Primeiros passosHadoop - Primeiros passos
Hadoop - Primeiros passosSensedia
 
BIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaBIGDATA: Da teoria à Pratica
BIGDATA: Da teoria à PraticaDaniel Checchia
 
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 BigDataSandro Andrade
 
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
 
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...Sensedia
 
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...Edilson Feitoza
 
Infraestrutura de Servidores - Anchieta
Infraestrutura de Servidores - AnchietaInfraestrutura de Servidores - Anchieta
Infraestrutura de Servidores - AnchietaEdilson Feitoza
 
Projeto Elevador Manual
Projeto Elevador ManualProjeto Elevador Manual
Projeto Elevador ManualEricbirth
 
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 onlineTales Augusto
 
Mercado financeiro brasileiro Artigo
Mercado financeiro brasileiro ArtigoMercado financeiro brasileiro Artigo
Mercado financeiro brasileiro Artigomanudellarocca
 
Calibração de sensores de temperatura
Calibração de sensores de temperaturaCalibração de sensores de temperatura
Calibração de sensores de temperaturaCarlos Melo
 
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 nbrCarlos Melo
 
Medidores de Vazão Eletromagnéticos
Medidores de Vazão EletromagnéticosMedidores de Vazão Eletromagnéticos
Medidores de Vazão EletromagnéticosVictor Said
 
Treinamento operador de empilhadeira
Treinamento operador de empilhadeiraTreinamento operador de empilhadeira
Treinamento operador de empilhadeiraJailton Cavallini
 
Apostila para operadores de empilhadeira.
Apostila para operadores de empilhadeira.Apostila para operadores de empilhadeira.
Apostila para operadores de empilhadeira.Welinton Tulio
 

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

Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passosrhpinotti
 
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 MapReduceMatteus Barbosa
 
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...Ambiente Livre
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Thiago Santiago
 
Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Natalia Raythz
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Big Data Open Source com Hadoop
Big Data Open Source com HadoopBig Data Open Source com Hadoop
Big Data Open Source com HadoopAmbiente Livre
 
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 - CuritibaMarcio Junior Vieira
 
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 AzureAlessandro Binhara
 
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...José Renato Pequeno
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
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 awsAmazon Web Services LATAM
 

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
 
Hbase trabalho final
Hbase trabalho finalHbase trabalho final
Hbase trabalho final
 
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
 

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