Please enable JavaScript.
Coggle requires JavaScript to display documents.
Ecossistema Hadoop (Soluções Comerciais (AWS EMR (Amazon Web Services…
Ecossistema Hadoop
Soluções Comerciais
AWS EMR
Amazon Web Services Elastic MapReduce
Foco em consultas de mapeamento/redução.
Cloudera
Fundada por engenheiros do Yahoo!, Google e Facebook.
Usa 100% produtos opensource:
Hadoop
Pig
Hive
HBase
Sqoop
HortonWorks
HDP-Hortonworks Data Plataform
[Ambari]
MAPR
PivotalHd
Microsoft Azure HDiNSIGHT
Apache Spark
Operação e Desenvolvimento
Ooozie
Sistema de agendamento de workflow usado para gerenciar principalmente os Jobs do MapReduce.
Apoia vários tipos de trabalhos Hadoop (Java Map-Reduce, streaming Map-Reduce, Pig, Hive e Sqoop) e Jobs específicas do sistema (programas java e scripts shell).
Permite usuários definir uma serie de Jobs escritos em diferentes linguagens – Map Reduce, Pig e Hive – e inteligentemente liga-los um ao outro.
Zookeeper
Solução open-source de alta performance , para coordenação e gestão de serviços em aplicações distribuídas. É uma espécie de guardião do Zoo.
É um serviço de coordenação distribuída para gerenciar grandes conjuntos de hosts (clusters).
Resolve o problema de coordenação e gestão com sua arquitetura simples.
Permite que o desenvolvedor se concentre na lógica do aplicativo principal sem se preocupar com a natureza distribuída do aplicativo.
Mais tarde se tornou um padrão para organização dos serviços do Hadoop, HBase e outras estruturas distribuídas. Por exemplo: o HBase usa o zookeeper para acompanhar o estado de dados distribuídos através de cluster.
Proporciona um ponto comum de acesso a uma ampla variedade de objetos utilizados em ambientes de cluster.
Ambari
Framework para provisionamento, gestão e monitoramento de clusters HADOOP.
Whirr
Crunch
Interação de Dados
Hive
É um data warehouse que funciona com Hadoop e MapReduce.
É um sistema de armazenamento de dados para hadoop que facilita a agregação dos dados para relatórios e análise de grandes conjuntos de dados (BigData).
Permite consultas sobre os dados usando linguagem sQL-Like, chamada HiveQL (HQL).
Provê capacidade de tolerância a falhas para armazenamento de dados e depende do MapReduce para execução.
Permite conexões JDBC/ODBC e por isso é facilmente integrado a outras ferramentas de inteligência de negócio como Tableau, Microstrategy, Microsoft Power Bi.
É orientado a batch e possui alta latência para execução de queries.
Assim como Pig, gera Jobs MapReduce que executam no cluster Hadoop.
Foi desenvolvimento pelo facebook.
Hive é sistema para gestão e query de dados não estruturados, em formato estruturado. Utiliza MapReduce (para execução) e HDFS (para armazenamento e pesquisa de dados).
HQL suporta os conceitos básicos de SQL.
Spark
Basicamente, Spark é uma engine de computação, responsável por agendar, distribuir e monitorar aplicações de diversas tarefas de processamento através de diferentes servidores em cluster.
É significamente mais veloz que o Hadoop MapReduce e vem ganhando popularidade.
Utiliza Hadoop (HDFS) como base, mas pode ser usado com Cassandra, HBase e MongoDB.
Pode ser usado também com linguagens Python, R e Scala.
É um projeto open-source, mantido por desenvolvedores e foi criado em 2009 quando trabalhavam com MapReduce e perceberam ineficiência na execução de computação iterativa. Por esta razão Spark foi concebido com objetivo de ser veloz tanto no processamento de queries como de algoritmos, além de processamento em memória e eficiente na recuperação de falhas.
• Velocidade: Pode ser 100x mais rápido que o Hadoop em memória e 10x em disco.
• Facilidade de uso: Aplicações podem ser escritas em Scala, Java e Python.
• Generalidade: Combina SQL Streaming e análise complexa, além do uso de ferramentas de alto nível como Spark SQL, MLlib para Machine Learning, GraphX e Spark Streaming.
• Integração com Hadoop: Executa sobre o YARN cluster manager e permite leitura e escrita de dados no HDFS.
Benefícios:
1- Facilidade de uso: é possível desenvolver APIs de alto nível em java, Scala, Python e R, que permite focar apenas no conteúdo a ser computado, sem se preocupar com configurações de baixo nível e extremamente técnicas
2- Velocidade: Spark é veloz, permitindo o uso iterativo e processamento rápido de algoritmos complexos. Velocidade é importante no processamento de grandes conjuntos de dados e pode fazer a diferença entre analisar dados de forma iterativa ou aguardar vários minutos para o fim de cada processamento. Com Spark o processamento é feito em memória.
3- Uso Geral: permite o uso de diferentes tipos de computação, como processamento de linguagem SQL (SQL Spark), processamento de texto, machine learning(MLlib) e processamento gráfico (GraphX).
Spark Framework
Spark core
Spark SQL
Spark Streaming
MLib
GraphX
Pig
Ferramenta utilizada para analisar grandes conjuntos de dados que representam fluxos de dados.
Podemos realizar todas as operações de manipulação de dados no Hadoop usando Apache Pig.
Para escrever programas de análise de dados, Pig oferece uma linguagem de alto nível conhecido como Pig latin.
Para analisar os dados usando Apache Pig, os programadores precisam escrever scripts usando linguagem Pig Latin.
Tem um componente conhecido como Pig Engine que aceita scripts PigLatin como entrada e converte esses scripts em Jobs MapReduce.
Storm
O Apache Storm se tornou o padrão para processamento em tempo real distribuído e permite processar grandes quantidades de dados.
Foi desenvolvimento em Java.
Foi criado para processar grandes quantidades de dados em ambientes tolerantes a falhas e escaláveis.
Basicamente, o Storm é um framework para dados streaming (Fluxo contínuo de dados) e possui uma alta taxa de ingestão de dados.
A gestão do estado do cluster, é feita através do Zookeeper.
É simples e pode-se executar todos os tipos de manipulação de dados em tempo real, em paralelo.
É um dos líderes em Real-Time Analytics.
Principais benefícios:
é open-source, robusto e amigável
tolerante a falhas, flexível, confiável e suporta diversas linguagens de programação
processa dados em tempo-real
storm é incrivelmente veloz
Arquitetura Storm:
Master Node
Coordenação do Cluster
Supervisor
WorkerNode
Transferência de Dados
Flume
É um serviço que basicamente permite enviar dados diretamente para o HDFS. Permite mover grandes quantidades de dados.
Funciona em ambiente distribuído para coletar, agregar e mover grandes quantidades de dados de forma eficiente.
Possui arquitetura simples e flexível baseada em streaming (fluxo constante) de dados.
O modelo de dados do flume permite que ele seja utilizado em aplicações analíticas online.
Também pode ser utilizado em infraestrutura de TI. Agentes são instalados em servidores web, servidores de aplicação ou aplicativos mobile, para coletar e integrar os dados com Hadoop, para análise online.
Sqoop
Importar e exportar dados de bancos de dados relacionais.
É possível importar tabelas individuais ou bancos de dados inteiros para o HDFS e o desenvolvedor pode determinar que colunas ou linhas serão importadas.
Sqoop = SQL-to-Hadoop
Permite transformar os dados no Hadoop sem desenvolvimento adicional.
Também gera classes java através das quais pode interagir com os dados importados.
Usa Jdbc para conectar com os bancos de dados relacionais.
Permite criar diretamente tabelas no Hive e suporta importação incremental.
Kafka
Sistema para gerenciamento de fluxos de dados em tempo real, gerados a partir de websites, aplicações e sensores.
Funciona como uma espécie de “Sistema Nervoso Central” que coleta dados de alto volume como por exemplo a atividade de usuários (cliques), logs, cotações de ações, ... e torna estes dados disponíveis como um fluxo em tempo real para o consumo por outras aplicações.
Foi feito para servir como repositório central de fluxos de dados.
integração de dados: forma de transportar os dados entre os diversos sistemas.
baixa latência: necessidade de enriquecer a analise diminuindo a latência (tempo de espera).
Não faz mais sentido falar apenas em dados armazenados em tabelas, linhas e colunas.
O volume de dados é tao grande , que os dados precisam ser vistos como realmente são: um fluxo constante, que precisa ser analisado em tempo real.
Falcon
Serialização
Avro
Trevni
Thrift
Segurança
Knox
Sentry
Inteligência
Mahout
Biblioteca opensource de algoritmos de aprendizado de maquina, escalável e com foco em clustering, classificação e sistemas de recomendação.
É dedicado ao
Machine Learning.
Utiliza os principais algoritmos de clustering, testes de regressão e modelagem estatística e os implementa usando o modelo MapReduce.
Drill
Busca
Lucene
Blur
Execução de Jobs
MapReduce
Yarn
Sistema gerenciador de clusters hadoop.
YARN
= Yet Another Resource Negotiator
Foi introduzida na versão 2.0 do hadoop para melhorar a implementação do MapReduce, mas suporta outros paradigmas de computação distribuída.
Fica entre a camada de aplicação e a camada de armazenamento. Sua função é gerenciar o cluster. Uma das principais funções é garantir que os algoritmos de processamento de dados distribuídos, utilizem de forma eficiente os recursos do Cluster.
Funciona através de 2 serviços:
resource manager (1 por cluster)
node manager (que é executado em todos os nodes do cluster)
Também é possível usar o SPARK sobre o YARN, que o método mais conveniente de usar o SPARK, quando existe um Cluster Hadoop.
Existem 2 modos de executar o SPARK com o YARN:
YARN cliente mode.
YARN cluster mode.
Armazenamento de Dados
HBase
Bancos de dados orientado a coluna construído sobre o sistema de arquivos Hadoop.
É o banco oficial do Hadoop
.
É semelhante ao Big Table do Google, projetado para fornecer acesso aleatório rápido a grandes quantidades de dados.
Aproveita a tolerância a falhas fornecida pelo sistemas de arquivos do Hadoop (HDFS).
Os dados podem ser armazenados no HDFS diretamente ou através do HBase.
É um tipo de banco de dados NoSQL e utiliza o modelo
Key-value (chave/valor).
Cada valor é identificado por uma chave.
Chaves e valores são do tipo Byte/Array.
Valores são armazenados por ordem de acordo com a chave.
No HBase as tabelas não possuem schemas.
O objetivo é armazenar tabelas realmente grandes, com bilhões de dados.
Possui 2 tipos de Nodes: máster e RegionServer:
Cassandra
É um banco de dados NoSQL, livremente distribuído, de alta performance, extremamente escalável e tolerante a falha.
Ele foi concebido com a premissa que falha de sistema ou de hardware sempre ocorrem.
Foi inicialmente desenvolvido pelo Facebook, como uma combinação do BigTable (Google) and Dynamo Data Store (Amazon).
É usado para armazenar gigantescas quantidades de dados (BigData), de forma rápida.
Também funciona muito bem quando se faz necessário a pesquisa de dados de forma indexada.
É voltado para trabalhar em clusters, sendo totalmente escalável. Novos nodes podem ser adicionados, à medida que os dados crescem.
É ainda uma excelente solução quando se necessita de alta performance para leitura e escrita.
Algumas empresas/websites que usam Cassandra: eBay, GitHub, GoDaddy, Instagram, Netflix, Reddit, CERN, Comcast, entre outras.
Gráficos
Giraph
Sistema de Arquivos
HDFS