Please enable JavaScript.
Coggle requires JavaScript to display documents.
Big Data 2.0 - O que é o Apache Hadoop - Detalhamento HDFS e MAP REduce…
Big Data 2.0 - O que é o Apache Hadoop - Detalhamento HDFS e MAP REduce
0 - Informações Gerais
1- Orígem
Nasce devido ao big data
Lembrando que Big Data é um fenomeno recente (2001/2002)
Teve como base
Google File System (GFS)
3 - Características
Gratuito/ Open Source / Livre
Provê aumento exponencial para armazenamento (disco e memória) em larga escala (baseado em cluster)
Alta disponibilidade
Sistema de armazenamento compartilhado,
distribuído e confiável
Tolerante a falhas
possui capacidade de se recuperar automaticamente
baseado em clusters de computadores (permitindo uso de computadores de baixo custo)
Provê aumento exponencial para processamento (paralelo) em larga escala (baseado em cluster)
segurança baseada no Kerberos
Escalável
possibilita crescimento horizontal com base em novos nós (nodes)
Flexivel
possibilita montar diferentes aquiteturas
Framework que viabiliza o uso de diversos computadores para processamento, armazenamento e análise de grandes volumes/conjuntos de dados
Tem se tornado o padrão para projetos de Big Data
Não é um banco de dados e sim um sistema de arquivos
2 - Necessidades
prover leitura e escrita paralela devido a baixa velocidade de acesso em discos rígidos para escrita
Prover estrutura de baixo custo, flexivel e confiável
4 - Os Três Principais Módulos
HDFS
Armazenamento distribuído
EXEMPLO DE USO
YAHOO(2004)
cluster de baixo custo
Tamanho do Hadoop Yahoo
100 mil CPUs
40 mil servidores
455 Petabytes
Maior instancia de clusters do yahoo possui
4500 nós (com seguinte configuração)
4 * 1TB de Disco (4TBytes)
16 GBybes de Ram
2*4 CPUs (8 CPUs)
Teve como base o projeto DFS
Projeto DFS - Distributed File System: sistema que permite o gerenciamento e armazenamento e compartilhamento de dados em rede
Características
Traz vantagens para o armazenamento de dados não estruturados
Recuperação automática
Portabilidade entre hardwares e sistemas operacionais heterogêneos
Escalabilidade para armazenamento de big data
confiabilidade (por manter várias cópias dos dados)
Otimizado para performance WORM
(Write Once ; Read Many Times)
Eficiente padrão para processamento de dados
Otimizado para armazenamento de grandes arquivos
Otimizado para clusters de baixo custo (hardware commodity)
Possui dois tipos de nós
Name node
Master
Gerencia estrutura
gerencia metadados
Data Node
Slave
Armazena e busca blocos de dados
Reporta lista de blocos para o master (name node)
Possibilita rápida transferência de dados (baseada em clusters)
Gerencia os discos de várias máquinas de forma a se comportarem como um único disco
Foi pensado considerando o tempo de leitura de todo o conjunto de dados - transfer rate ( e não apenas do primeiro registro - seek time)
É um sistema de armazenamento de arquivos (não é um banco de dados)
Arquitetura HDFS
Cache Distribuido
permite cache dos vários
arquivos usados pelas aplicações
Ganho de performance quando MAP e
REDUCE precisam acessar dados em comum
"Node" acessa arquivo locais ao invés
de solicitar para outro "node"
Possível fazer cache de Zips e Tar.gz
Uma vez no cache, o arquivo será disponibilizado pelo Hadoop no sistema de arquivos local de cada node onde ocorre a execução (No Sistema Operacional HDFS não em memória ram)
Serviços rodando no cluster
Serviços master
Características
recebe os jobs dos clientes
garante que os dados sejam carregados e segregados em pedaços de blocos segundo a configuração definida
viabiliza aceso confiável e rápido
prmite qe os dados sejam armazenados em arquivos (em um ou mais blocos) que serão replicados e distribuídos
Name Node
somente um computador pode exercer este papel
Secondary NameNode
somente um computador pode exercer este papel
Serviços Slave
Data Node
vários computadores realizam/exercem este papel
Segurança
Kerberos
por PADRAO executa em modo NÃO SEGURO
autenticação direta
após configurado executa em modo seguro
cada usuário e serviço precisará ser autenticado
solicitação deverá ser de um serviço válido
Yarn
gerenciamento do cluster
Map Reduce
Processamento de dados no ambiente distribuído
Precussor do Spark
Características
Modelo de programação para grandes massas de dados
Flexibilidade (processando dados estruturados e não estruturados)
confiabilidade (Jobs executando em paralelo, se um falhar os outros não são afetados)
Acessibilidade (suporte para várias linguagens: Java, C++, Python, Apache Pig)
Muito efetivo com dados semi estruturados ou não estruturados)
Interpreta dados durante as sessões de processamento de dados
parâmetros de tratamento definidos pelo analista (não são intrínsecos como nos dados estruturados)
Cientista de dados é o responsável por identificar o problema a ser resolvido e aplicar técnicas de mapeamento e redução
Análise dos dados por força bruta (todo conjunto de dados é processado em cada query)
Modelo de processamento em batch (diferente de contínuo / streaming)
função de mapeamento converte os dados em pares de chave:valor
é bom para atualizar todo (ou maior parte) de um grande conjunto de dados
O segredo da performance do MapReduce, está no balanceamento entre seeking e transfer
reduzir seeking
usar efetivamente transfer
Tranfer rate tem melhorado significativament
é bem mais veloz que o seek time
permite a execução de queries ad-hoc em todo o conjunto de dados em um tempo escalável
Arquitetura MapReduce
projetada para usar computação paralela e distribuída em Big Data tranformando grandes porções de dados em pedaços menores
Contempla basicamente duas operações
Map
Separa informações em Chaves/Valores (key/value)
Dados são
Filtrados
Transformados
Distribuidos
Processados
Reduce
Agregados em Datasets
dados resultantes são transformados em chave(id)/valor(dado)
Exemplos de aplicação
Classificação Baysiana para data mining
Operações de Search Engine (Indexação de palavras e PageRank)
Sistemas de Recomendação
Processo
0 - Defina o objetivo
1 - Aplicar MapReduce
2 - Dividir o conjunto em listas ordenadas(chaves e valores)
3 - Dividir em listas ordenadas já agrupadas (ainda menores)
4 - Continuar processo até o resultado / ponto desejado de processamento e agrupamento/solução
7 - SGBDs e HADOOP
Foco nos dados do RDBMS VS HADOOP
Diferente foco na atualização de dados
RDBMS
processamento de pequenas porções de dados
Foco oposto ao Hadoop (na atualização de pequena parte do conteúdo)
Utiliza BTree
Seek é mais adequado para atualização de pequenas porções de dados
Foco em muita escrita e leitura
seek é associado ao delay para encontrar arquivo
Foco no
Seek Time
(tempo de busca): tempo necessário para um controlador de disco rígido localizar uma parte específica dos dados armazenados.
Hadoop
processar grandes porções de dados
Utiliza operações de sort e Merge
Foco na atualização de todo ou maior parte do conteúdo
transfer é associado a velocidade para encontrar arquivo
Foco no
Transfer Rate
(taxa de tranferencia): A velocidade na qual os dados podem ser transmitidos de um dispositivo para outro
Link para Resumo do Hadoop the definitive Guide
Tranfer está melhorando mais rápido que o seek
Visão Geral de SGBDs(RDBMS)
Vs Hadoop (HDFS)
SGBDs/RDBMS
Modelo de computação
Transação = unidade de trabalho
provê controle de concorrência
voltado para o conceito de transações
Modelo de dados
Modelo voltado para leitura e escrita de dados
estruturados com controle de Schema
dados no formato tabular
Custo
comumente necessita de servidores mais robustos
Custo mais elevado e escalonamento comumente vertical
Tolerância a falha
ocorrencia de falhas é rara (mas ocorre)
possui mecanismos de recuperação
Hadoop / HDFS
Modelo de computação
voltado para o conceito de jobs
Job = Unidade de trabalho
Sem controle de concorrência
Modelo de dados
Qualquer tipo de dados pode ser utilizado
Modelo voltado para WORM (uma escrita e muitas leituras)
Dados em qualquer formato
Tolerância a falha
Utiliza mecanismos simples mas bastante eficientes
Falha já é esperada devido ao hardware de baixo custo
Custo
Servidores commodity podem ser utilizados em paralelo (cluster)
escalabilidade horizontal
5 - Crescimento
[
Data Fabric
]
6 - Modos de configuração
Stand Alone
Todos serviços numa única máquina
Usado para Testes
Pseudo Distribuido
Cada serviço em uma JVM
Múltiplas JVMs no mesmo servidor
Requer mais memória
Totalmente Distribuído
Cada serviço em uma JVM distribuídos pelo cluster
Ambiente de produção
8 - Arquitetura baseada
em Cluster
O que é um cluster
Conjunto / agrupamento de várias máquinas/computadores
se comporta como uma grande e única máquina (composta por todos os computadores participantes)
Artigo - Supercomputadores e clusters
comumente encontrado nos data centers
software gerencia um conjunto de máquinas de forma a se comportarem como uma única grande máquina
Maior capacidade de processamento e armazenamento
cluster Hadoop
Master
Name Node (HDFS)
Gerenciamento
processamento distribuído
armazenamento distribuído
Job Tacker (MapReduce)
Slave
Data Node (HDFS)
Tarefas
armazenar dados
processar dados
Task Tracker (MapReduce)