Você está na página 1de 45

Overview das principais ferramentas do Hadoop

2
Objetivos da aula

Introdução a Tecnologias
Importantes do Ecossistema
Hadoop

Preparação de Infraestrutura
com Hortonworks HDP

3
3
Hive

✔ Provê uma interface para o Hadoop;


✔ É uma "ponte" para o Hadoop para pessoas que não querem trabalhar com
Programação Orientada a Objetos em Java;
✔ Executa acima da camada (HDFS, MapReduce, Yarn);
✔ Armezana seus dados no HDFS;
✔ Executa todos os processos em Jobs MapReduce de forma transparente;
✔ HiveQL: Hive Query Language (similar ao SQL – select, group by, join);
✔ Familiar para analistas e engenheiros;
✔ Equivalente no Google - BigQuery
4
Hive

✔ Hive expõe os arquivos no HDFS na forma de tabelas para o usuário;


✔ O HQL é escrito de forma semelhante ao SQL e submetido ao Hive;
✔ O Hive traduz a consulta para tarefas MapReduce e as executa no
Hadoop (O Hive abstrai os detalhes por trás das tarefas
MapReduce);
5
Hive - Metastore

✔ Armazena metadados para todas as tabelas no Hive;


✔ Mapeia os arquivos e diretórios no Hive para Tabelas;
✔ Guarda as definições de tabela e o esquema para cada uma delas;
✔ Qualquer base de dados com um driver JDBC pode ser usado como
Metastore;
6
Hive x RDBMS

✔ Grandes Datasets ✔ Pequenos Datasets


✔ Computação Paralela ✔ Computação Serial
✔ Alta latência ✔ Baixa latência
✔ Operações de Leitura ✔ Operações de Leitura e Escrita
✔ Não compatível com ACID ✔ Compatível com ACID
✔ HiveQL ✔ SQL
7
Hive x RDBMS

✔ Esquema em leitura, sem restrições ✔ Esquema em escrita, não nulo,


impostas exclusivo
✔ Suporte de índice mínimo ✔ Índices permitidos
✔ Atualizações no nível de linha, ✔ Operações de nível de linha
exclusões como um caso especial permitidas em geral
✔ Muitas outras funções incorporadas ✔ Funções internas básicas
✔ Apenas equi-joins permitido
✔ Nenhuma restrição sobre junções
✔ Subconsultas restritas
✔ Gama completa de subconsultas
8
HBase

✔ Um sistema de gerenciamento de banco de dados que roda no Hadoop;


✔ Banco NoSQL padrão do Hadoop baseado em colunas (Columnar store);
✔ Apenas operações CRUD;
✔ ACID em nível de linha (row level);
✔ Bom para dados esparsos;
✔ Integrável com sua aplicação assim um banco de dados tradicional;
✔ Equivalente no Google - BigTable
9
HBase x RDBMS

✔ Não existe um esquema predefinido para tabelas; ✔ Tabelas RDBMS têm esquema fixo, que

✔ Construído para tabelas largas. É descreve toda a estrutura das tabelas;


horizontalmente escalável;
✔ Construído para tabelas pequenas. Difícil
✔ Não há transações no HBase; de escalar;
✔ Tem dados não normalizados (armazenamento é ✔ É transacional;
barato é um sistema distribuído);
✔ Tem dados normalizados (otimiza espaço);
✔ É bom para dados semiestruturados e
estruturados. ✔ É bom para dados estruturados.
10
Modelo Lógico Hbase: Exemplo

Row Key Column Family Column Qualifier Timestamp Value


Nome 1500386069196 Bruno Tavares
contato Endereço 1500386069196 Rua Carlos Abreu, 264
Estado 1500386069141 SP
1
Tipo 1500386070240 Dinheiro
pagamento Valor 1500386069256 1300
ID_Pag 1500386069298 001
Nome 1500386206339 Marcia Dantas
contato Endereço 1500386206392 Rua Cassio Pinheiro, 987
Estado 1500386206267 RJ
2
Tipo 1500386206531 Cartão
pagamento Valor 1500386206479 3000
ID_Pag 1500386206515 003
11
HBase
12
Tabelas esparsas

✔ Em um banco de dados tradicional, os dados desta maneira resulta


em uma mudança na estrutura da base de dados:

Estas células ocupam espaço mesmo vazias!


13
Vantagens de um banco colunar

✔ Tabelas esparsas:
✔ Não desperdiça espaço
quando armazena dados
esparsos;
✔ Atributos dinâmicos:
✔ Atualizam os atributos
dinamicamente sem alterar a
estrutura de armazenamento;

Dinamicamente adiciona-se novos atributos como linhas na tabela.


14
Pig

✔ Fornece uma linguagem de manipulação de dados;


✔ Transforma dados não estruturados em um formato estruturado;
✔ Consulta este dado estruturado usando interface como Hive;
✔ Extrair dados não estruturados e inconsistentes da fonte;
✔ Limpar dados e colocá-lo em outro banco de dados onde ele possa ser
analisado;
✔ Não possui estruturas condicionais e nem de repetição;
✔ É uma linguagem de Dataflow;
15
Pig x SQL

✔ Uma linguagem de fluxo de dados, ✔ Uma linguagem de consulta é


transforma dados para armazenar em usada para recuperar resultados
um armazém
✔ Especifica exatamente como os dados ✔ Abstrai como as consultas são
devem ser modificados a cada etapa executadas
✔ Objetivo do processamento é ✔ Finalidade da extração de
armazenar em um formato de consulta dados é a análise
✔ Usado para limpar dados com
✔ Extrair insights, gerar relatórios,
esquema inconsistente ou incompleto
orientar decisões
16
Pig x Hive

✔ Usado para extrair, transformar ✔ Usado para consultar dados


e carregar dados em um data de um data warehouse para
warehouse (ETL) gerar relatórios
✔ Usado por desenvolvedores ✔ Usado por analistas para
para reunir dados úteis em um recuperar informações de
só lugar negócios dos dados
✔ Usa Pig Latin, uma linguagem ✔ Usa o HiveQL, uma linguagem
processual de fluxo de dados de consulta estruturada
17
Flume, Kafka

✔ Kafka: O Apache Kafka é uma plataforma de streaming distribuída. Uma


plataforma de streaming tem três recursos principais: Publicar e inscrever
fluxos de registros, semelhantes a uma fila de mensagens ou sistema de
mensagens corporativo. Armazenar fluxos de registros de uma maneira
durável e tolerante a falhas. Processar fluxos de registros conforme eles
ocorrem.
✔ Flume: O Apache Flume é um sistema distribuído usado para agregar os
arquivos a um único local. É usado para mover os dados de um local para
outro de forma confiável e eficiente. Possui recursos embutidos como
mecanismos de confiabilidade, failover e recuperação sendo tolerante a
falhas;
18
Sqoop

✔ É uma ferramenta projetada para transferir dados entre o Hadoop e bancos


de dados relacionais;

✔ Você pode usar o Sqoop para importar dados do MySQL ou Oracle para o
HDFS, transformar os dados no MapReduce e, em seguida, exportar os
dados de volta para um RDBMS;

✔ O Sqoop usa MapReduce para importar e exportar os dados, o que fornece


operação em paralelo e tolerância a falhas.
19
Sqoop

Hadoop File
RDBMS IMPORT System
(MySQL, Oracle,
PostgreSQL, DB2) (HDFS, Hive,
HBase)

EXPORT
20
Notebook Zeppelin

✔ Os notebooks interativos baseados no navegador permitem que os


engenheiros de dados, os analistas de dados e os cientistas de dados
sejam mais produtivos ao desenvolver, organizar, executar e compartilhar
códigos de dados e visualizar resultados sem se referir à linha de comando
ou precisar dos detalhes do cluster;

✔ Os notebooks permitem que os usuários trabalhem interativamente com


longos fluxos de trabalho.
21
Notebook Zeppelin
22
Oozie

✔ O Apache Oozie é um sistema agendador que executa e gerencia trabalhos Hadoop em


um ambiente distribuído;

✔ O Oozie permite combinar vários trabalhos complexos para ser executado em uma
ordem sequencial para realizar uma tarefa maior;

✔ Dentro de uma sequência de tarefas, dois ou mais trabalhos também podem ser
programados para serem executados paralelamente ao outro;

✔ Suporta suporta vários trabalhos no Hadoop, como, por exemplo, Hive, Pig, Sqoop, além de
trabalhos específicos do sistema (Java e Shell).
23
Introdução ao Spark

✔ É uma engine de computação distribuída que pode ser usada ao


lado do Hadoop;
✔ Possui um shell interativo para processar datasets rapidamente;
✔ Possui bibliotecas para trabalhar com Machine learning,
Processamento de Stream, Grafos, SQL etc;
24
MapReduce

✔ É um modelo de programação paralela;


✔ Define a lógica de processamento de dados em múltiplos nós de um
cluster;
✔ É adequado para operação de processamento em lote (batch) em
arquivos no HDFS;
✔ Sua lógica é geralmente escrita em Java;
25
Processamento de Stream

✔ Batch (Lote) ✔ Stream (Fluxo)


✔ Conjuntos de dados limitados ✔ Conjuntos de dados ilimitados
✔ Pipeline lento da ingestão de ✔ Processamento imediato, conforme
dados para análise os dados são recebidos
✔ Atualizações periódicas como ✔ Atualizações contínuas como tarefas
trabalhos concluídos executadas constantemente
✔ Ordem dos dados recebidos não ✔ Ordem importante
tem importância ✔ Nenhum estado global, apenas
✔ Único estado global do mundo a histórico de eventos recebido
qualquer momento em tempo ✔ Exemplos: Logs, Tweets, Sensores;
26
Processamento de Stream

✔ Alta taxa de transferência, baixa latência


✔ Tolerância a falhas com baixa sobrecarga
✔ Gerenciar eventos fora de ordem
✔ Fácil de usar, sustentável
✔ Repetir streams
✔ Streaming Spark, Storm, Flink
27
Dataproc (“Hadoop da Google”)

✔ Hadoop (equivalente no Google - Dataproc)


✔ Hadoop + Spark
✔ Inclui: Hadoop, Spark, Hive e Pig
✔ "No-ops": cria cluster, usa e desliga;
✔ Usa Google Cloud Storage (não HDFS)
✔ Ideal para mover código existente para GCP
28
Exemplo de Pipeline
29
Obtenção da sandbox Hortonworks HDP

✔ Requisitos mínimos para usar a Sandbox:


✔ Ter no mínimo 8 GB de memória RAM, o ideal é deixar 11 GB de memória RAM
para esta máquina virtual, mas para isso seu computador deverá ter no mínimo
16 GB de memória RAM;
✔ Ter instalado o VirtualBox 5.2 no seu computador (
https://www.virtualbox.org/wiki/Downloads)
30
Obtenção da sandbox Hortonworks HDP

✔ https://br.hortonworks.com/downloads/#sandbox
✔ Baixar a versão Hortonworks Data Platform (HDP®) 2.6.5 on Hortonworks
Sandbox para VirtualBox
31
32
33
34
35
36
37

Definir senha de admin do Ambari via terminal: ETAPA 1


Para começar abra um terminal na máquina hospedeira e execute os seguintes
comandos:
comandos
1
[seuusuario@localhost ~]$ ssh maria_dev@localhost -p 2222

Agora vire usuário root para executar o comando de alteração de senha do usuário admin
(defina a senha 4linux):
[maria_dev@sandbox ~]$ sudo -s
2 [root@sandbox ~]# ambari-admin-password-reset
[root@sandbox ~]# exit
[maria_dev@sandbox ~]$
38

Baixando arquivos para máquina local: ETAPA 2

Para baixar os arquivos que vamos usar no curso use o comando git:
[seuusuario@localhost ~]$ cd ~
[seuusuario@localhost ~]$ git clone
1 https://github.com/4linux/hadoop.git
[seuusuario@localhost ~]$ ls ~/hadoop
[seuusuario@localhost ~]$ ls ~/hadoop/ml-100k
39

Senha: maria_dev
(a senha é o login)
40
41

HDFS View
42
43
44
45

Você também pode gostar