Genie é um mecanismo federado de orquestração e execução de Big Data desenvolvido pela Netflix.
O valor do Genie é melhor descrito em termos do problema que ele resolve.
A infraestrutura de Big Data é complexa e está em constante evolução.
Os consumidores de dados (cientistas de dados ou outras aplicações) precisam superar muitos obstáculos para executar uma consulta simples:
O que funciona hoje, pode não funcionar amanhã. O cluster pode ter sido movido, os binários podem não ser mais compatíveis, etc.
Multiplique essa sobrecarga pelo número de consumidores de dados e isso resultará em muito tempo perdido (e sofrimento!).
Os provedores de infraestrutura de dados enfrentam um conjunto diferente de problemas:
O Genie foi projetado para ficar na fronteira desses dois mundos e simplificar a vida das pessoas de ambos os lados.
Um cientista de dados pode “apagar a lâmpada mágica” e apenas dizer “Genie, execute a consulta 'Q' usando o mecanismo SparkSQL nos dados de produção”. Genie cuida de todos os detalhes essenciais. Ele monta dinamicamente os binários e configurações necessários, executa o trabalho, monitora-o, notifica o usuário sobre sua conclusão e disponibiliza os dados de saída para uso imediato e futuro.
Provedores de infraestrutura de Big data trabalham com o Genie disponibilizando recursos para uso (clusters, binários, etc.) e inserindo a lógica mágica com a qual o usuário não precisa se preocupar: para qual cluster uma determinada consulta deve ser roteada? Com qual versão do Spark uma determinada consulta deve ser executada? Este usuário tem permissão para acessar esses dados? etc. Além disso, os detalhes de cada trabalho são registrados para posterior auditoria ou depuração.
O Genie foi projetado desde o início para ser muito flexível e personalizável. Para mais detalhes visite a documentação oficial
As compilações do Genie são executadas no Travis CI aqui.
Filial | Construir | Cobertura (coveralls.io) |
---|---|---|
mestre (4.2.x) | ||
4.1.x | ||
4.0.x |
genie-app
Servidor de serviço Genie independente.
genie-agent-app
Executor de tarefas Genie CLI independente.
genie-client
O cliente Genie interage com o serviço por meio da API REST.
genie-web
A biblioteca principal do servidor pode ser reempacotada para injetar e substituir componentes do servidor.
genie-agent
A biblioteca principal do agente pode ser reagrupada para injetar e substituir componentes.
genie-common
, genie-common-internal
, genie-common-external
Bibliotecas de componentes internos compartilhadas pelos módulos servidor, agente e cliente.
genie-proto
Mensagens protobuf e definição de serviços gRPC compartilhadas por servidor e agente. Esta não é uma API pública destinada ao uso por outros clientes.
genie-docs
, genie-demo
Documentação e aplicação de demonstração.
genie-test
, genie-test-web
Testando classes e utilitários compartilhados por outros módulos.
genie-ui
UI JavaScript para pesquisar e visualizar trabalhos, clusters, comandos.
genie-swagger
Configuração automática do Swagger via Spring Fox. Adicione ao artefato de implantação final do servidor para ativar.
Genie publica no Maven Central e Docker Hub
Consulte a seção de demonstração da documentação para obter exemplos. E vá para a seção de configuração para obter instruções mais detalhadas sobre como configurar o Genie.
O cliente Genie Python está hospedado em um repositório diferente.
Para obter uma explicação detalhada da arquitetura do Genie, casos de uso, documentação da API, demonstrações, guias de implantação e personalização e muito mais, visite a documentação do Genie.
Para entrar em contato com desenvolvedores Genie com perguntas e sugestões, use GitHub Issues