O Zookeeper é um serviço de coordenação distribuído.
- Fornece as rotas necessárias para as peças do cluster.
- Identifica nós por nomes (DSN-like).
- Ajuda as peças do ecossitemas Hadoop se achar na bagunça toda.
- Pode ajudar a evitar concorrência (write on read).
- Ajuda na recuperação de falhas.
Para o desenvolvedor, o Zookeeper é completamente transparente. Essa tecnologia é mais aparente para aqueles que trabalham com a parte da infraestrutura.
Benefícios do Zookeeper. Créditos: data-flair
O Sqoop é uma ferramenta que permite mover dados de maneira facilitada entre banco de dados relacionais e o HDFS.
- Realiza a leitura linha a linha de tabelas para arquivos (pode pecar na performance).
- Permite importar dados e metadados de bancos de dado relacionais direto para o Hive.
- Utiliza MapReduce por debaixo dos panos: processamento paralelo e tolerante a falha.
- Contudo MapReduce já não é mais o motor mais rápido disponível (alternativas:
Spark, Flink).
sqoop import \
--connect jdbc: \
--username abc \
--password xyz \
--table some_table \
--where "column='something'"
Sqoop Usecase. Créditos: Amazon
Consultas SQL a serem feitas sobre o conjunto de dados de Pokémon (vide Dataset).
- Todos os Pokémon lendários
SELECT * FROM trainning.pokemon WHERE legendary=TRUE;
- Todos os Pokémon de apenas um tipo
SELECT * FROM trainning.pokemon WHERE type2='';
- Os top 10 Pokémon mais rápidos
SELECT * FROM trainning.pokemon ORDER BY speed DESC LIMIT 10;
- Os top 50 Pokémon com menos HP
SELECT * FROM trainning.pokemon ORDER BY hp ASC LIMIT 50;
- Os top 100 Pokémon com maiores atributos
- Total (soma)
SELECT * FROM trainning.pokemon ORDER BY SUM(hp, attack, defense, spatk, spdef, speed) DESC LIMIT 100;
- Individuais
SELECT * FROM trainning.pokemon ORDER BY GREATEST(hp, attack, defense, spatk, spdef, speed) DESC LIMIT 100;