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)

3 - Características

Gratuito/ Open Source / Livre

2 - Necessidades

prover leitura e escrita paralela devido a baixa velocidade de acesso em discos rígidos para escrita

Provê aumento exponencial para armazenamento (disco e memória) em larga escala (baseado em cluster)

Alta disponibilidade

Tolerante a falhas

Sistema de armazenamento compartilhado,
distribuído e confiável

baseado em clusters de computadores (permitindo uso de computadores de baixo custo)

Provê aumento exponencial para processamento (paralelo) em larga escala (baseado em cluster)

Prover estrutura de baixo custo, flexivel e confiável

segurança baseada no Kerberos

Escalável

possui capacidade de se recuperar automaticamente

Flexivel

possibilita montar diferentes aquiteturas

possibilita crescimento horizontal com base em novos nós (nodes)

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

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)

Yarn

Map Reduce

Processamento de dados no ambiente distribuído

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

Hadoop

processar grandes porções de dados

Precussor do Spark

gerenciamento do cluster

Teve como base

Google File System (GFS)

5 - Crescimento

Utiliza operações de sort e Merge

Foco na atualização de todo ou maior parte do conteúdo

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

dropped image link

transfer é associado a velocidade para encontrar arquivo

seek é associado ao delay para encontrar arquivo

Tranfer está melhorando mais rápido que o seek

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

Data Node

Master

Gerencia estrutura

gerencia metadados

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

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.

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)

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

dropped image link

dropped image link

Foi pensado considerando o tempo de leitura de todo o conjunto de dados - transfer rate ( e não apenas do primeiro registro - seek time)

é 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

permite a execução de queries ad-hoc em todo o conjunto de dados em um tempo escalável

reduzir seeking

usar efetivamente transfer

Tranfer rate tem melhorado significativament

é bem mais veloz que o seek time

Cientista de dados é o responsável por identificar o problema a ser resolvido e aplicar técnicas de mapeamento e redução

6 - Modos de configuração

É um sistema de armazenamento de arquivos (não é um banco de dados)

Não é um banco de dados e sim um sistema de arquivos

Stand Alone

Pseudo Distribuido

Totalmente Distribuído

Todos serviços numa única máquina

Usado para Testes

Cada serviço em uma JVM

Múltiplas JVMs no mesmo servidor

Requer mais memória

Cada serviço em uma JVM distribuídos pelo cluster

Ambiente de produção

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

Modelo de dados

Modelo voltado para leitura e escrita de dados

Custo

Tolerância a falha

ocorrencia de falhas é rara (mas ocorre)

possui mecanismos de recuperação

comumente necessita de servidores mais robustos

Custo mais elevado e escalonamento comumente vertical

Hadoop / HDFS

Modelo de computação

voltado para o conceito de jobs

Job = Unidade de trabalho

Sem controle de concorrência

voltado para o conceito de transações

Modelo de dados

Qualquer tipo de dados pode ser utilizado

estruturados com controle de Schema

Modelo voltado para WORM (uma escrita e muitas leituras)

Dados em qualquer formato

dados no formato tabular

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

8 - Arquitetura baseada
em Cluster

O que é um cluster

Conjunto / agrupamento de várias máquinas/computadores

Foco no Transfer Rate (taxa de tranferencia): A velocidade na qual os dados podem ser transmitidos de um dispositivo para outro

cluster Hadoop

Master

Name Node (HDFS)

Gerenciamento

processamento distribuído

armazenamento distribuído

se comporta como uma grande e única máquina (composta por todos os computadores participantes)

Slave

Data Node (HDFS)

Tarefas

armazenar dados

processar dados

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

Job Tacker (MapReduce)

Task Tracker (MapReduce)

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

Name Node

somente um computador pode exercer este papel

Secondary NameNode

somente um computador pode exercer este papel

viabiliza aceso confiável e rápido

Serviços Slave

Data Node

vários computadores realizam/exercem este papel

prmite qe os dados sejam armazenados em arquivos (em um ou mais blocos) que serão replicados e distribuídos

Segurança

Kerberos

por PADRAO executa em modo NÃO SEGURO

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

autenticação direta

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

Reduce

Separa informações em Chaves/Valores (key/value)

Dados são

Filtrados

Transformados

Distribuidos

Processados

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

dropped image link

dropped image link

dropped image link