anos como desenvolvedor (+10 com python) ▸ senior data engineer @ vivareal.com ▸ contratando muito: https://jobs.lever.co/vivareal/ rupy brazil chairman
dividir os dados em cada computador? ▸ Como manter os dados que fazem sentido de serem processados juntos? ▸ Divisão de carga entre os processo, ou seja, qual a carga de dados que cada computador vai executar? ▸ Se hover “desbalanceio", a computação atrasa; ▸ A computação só termina quando todos os processos estão finalizados;
um framework para processamento distribuído para enormes volumes de dados através de clusters de maquinas e modelo de programação simples; ▸ Engloba um ecossistemas de ferramentas; ▸ Primeiro release em Abril de 2006;
GOOGLE (GOOGLE FILE SYSTEM) ‣ FILE SYSTEM DISTRÍBUIDO ‣ REDUNDANTE ‣ REPLICAS DE CADA PARTE DO ARQUIVO ‣ TOLERANTE A FALHAS ‣ BLOCOS ESTÃO DISTRIBUÍDOS POR TODA PARTE
pelo yelp; ▸ Python 2.6+/3.3+; ▸ Permite criar vários steps; (um passo de map-reduce alimenta o próximo); ▸ Configuração baseada em arquivos (mrjob.conf) ▸ Suporte completo a AWS Elastic MapReduce; ▸ Roda no Google Cloud, e localmente para testes; ▸ pip install mrjob
import MRJob import re WORD_RE = re.compile(r"[\w']+") class MRWordFreqCount(MRJob): def mapper(self, _, line): for word in WORD_RE.findall(line): yield (word.lower(), 1) def combiner(self, word, counts): yield (word, sum(counts)) def reducer(self, word, counts): yield (word, sum(counts)) https://github.com/Yelp/mrjob
Curva de aprendizado média (entender o hadoop é essencial) ▸ Boa flexibilidade ▸ Excelente para cloud computing ▸ Tarefas de alta complexidade ▸ Difícil customização ▸ Boa documentação
(2.7, 3.3, 3.4, 3.5); ▸ Criado pelo Spotify; ▸ Framework para gerenciamento de workflows de dados; ▸ Excelente para processamento em batch's; ▸ Suporte nativo ao hadoop; ▸ Menos completo que o mrjob; ▸ Integra com Spark Jobs; ▸ Agendamento de tarefas; ▸ Ativo desenvolvimento; ▸ Documentação ruim; ▸ pip install luigi
Documentação ruim ▸ Curva de aprendizado pequena ▸ Muito flexível ▸ Generalista ▸ Fácil customização ▸ Integração com Spark e uma infinidade de ferramentas ▸ Desenvolvimento ativo
em scala (JVM) ▸ Generalista (MapReduce, Graph, MBLib) ▸ Roda sobre hadoop; ▸ Open-source desde 2010 ▸ APIs completas para Java, Scala, R e Python ▸ Processamento em memória ▸ Totalmente interativo
é bom para tarefas muito complexas, usuários da AWS ou cloudcomputing ou clusters hadoop legados ▸ Manutenção do cluster hadoop é complexa ▸ Luigi é excelente para gerenciamento de workflow de dados, integração com outras ferramentas e tarefas de baixa e média complexidade com haddop ▸ Integra com Spark ▸ Spark tem se tornado padrão de mercado, integra facilmente com outras ferramentas, roda sobre o haddop, facil apendizado; ▸ Serve para tarefas simples até alta complexidade; ▸ Vá de Spark e Luigi