Zusammenfassung der Ressource
Aula 02 e 03 - Hadoop, HDFS e MapReduce
- Conceitos
- Hadoop é um framework em código aberto para
armazenamento e processamento distribuídos de
grandes conjuntos de dados em hardware simples.
- História
- Motivado a construir um buscador complexo, que funcione na escala da
web, indexando bilhões de páginas, Doug Cutting resolveu se dedicar ao
desafio iniciando seu projeto Nutch junto com Mike Cafarella, mas
enfrentou alguns problemas com escalabilidade
- 2003 (gfs) e 2004(map reduce) Nutch motor de busca web Projeto open
source da apache Muitas tarefas para implementar Escalabilidade
limitada Criado por doug cutting e mike cafarella Yahoo contrata doug
Sistema distribuido do nutch passa a ser um outro projeto apache
independente Em 2006 o novo projeto passa a se chamar hadoop Em
2009 yahoo executa 100 terabytes de dados em mais de 3 mil nos.
- Servicos
Chave
- HDFS
- - Hadoop Distributed File System
(HDFS) - Hadoop Distributed File
System (HDFS) é o sistema de
armazenamento distribuído utilizado
por aplicações Hadoop. - O HDFS
quebra os arquivos em blocos de
dados - Cria réplicas destes blocos,
que são distribuídos no cluster -
Permitindo computações
extremamente rápidas em arquivos
pequenos e em máquinas distintas. -
Escalável e tolerante a falhas
- NameNode - NN
- Gerencia o namespace do sistema de
arquivos do Hadoop
- DataNode
- Armazena os blocos de
dados em um nó
- SecondaryNameNode
- Oferece tarefas de ponto de
verificação e manutenção do
NameNode
- Exemplo
- 5 nodes, Blocos
de 64 MB,
Arquivo de
320MB, Fator de
réplica 3
- Quando um nó falha em um
DataNode o NN percebe a
falta de comunicação e replica
os blocos que estavam nesse
nó para os outros nós.
- comandos shell hdfs
- http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html
- MapReduce
- Processamento paralelo de alto desempenho
- O Hadoop MapReduce é um modelo de
programação para criação de aplicações
processam rapidamente vastas quantidades
de dados em paralelo através de grandes
clusters de computadores comun
- O código ou programa a ser executado, é
transportado até o local do dado, executando
tarefas independentes em cada bloco de dado
(Map), e depois são consolidados gerando a
resposta do processamento (Reduce).
- Workflow
- - Uma aplicação cliente submete um job ao
JobTracker
- - JobTracker se comunica com o NameNode
para determinar a localização dos dados
- - JobTracker localiza os nós TaskTrackers
próximos aos dados
- - JobTracker submete as tarefas aos nós
TaskTrackers
- - Nós TaskTrackers são
monitorados.
- - Ao completar a tarefa, o JobTracker
atualiza seu status.
- Estrutura de uma aplicação MapReduce
- Map Atua exclusivamente sobre um
conjunto de entrada com chaves e valores,
produzindo uma lista de chaves e valores
- Reduce Atua sobre os valores
intermediários produzidos pelo map para,
normalmente, agrupar os valores e
produzir uma saída
- (K1,V1)→Map→list(K2,V2)→ (K2, list(V2))→Reduce→list(K3, V3)
- MapReduce não é indicado para: –
Consultas que necessitam de baixa
latência – Sistemas de tempo-real
– Consultas em um website –
Processamento de pequenas
tarefas – Overhead para
gerenciamento das tarefas
- Arquitetura
- hardware: - Servidores commodity - Estruturados em cluster
- Self-Healing, qualquer alteração no cluster ou problema, é
detectado automaticamente e compensado com os demais
- Principios
- Performance escalável - Execução em
paralelo - Dados complexos e de
diversas fontes e tipos - Tolerante a
falhas - A instrução de
processamento é transportada para
onde está o dado - Poucos arquivos
grandes, e não muitos arquivos
pequenos
- Ecosistema
- ZooKeeper -
coordination
- Sqoop - Data exchange
- Flume - log collector
- HDFS - Hadoop File System
- Yarn MapReduce V2 - Distribuited
Procesing Framework
- Oozie - workflow
- Pig -
Scripting
- Mahout - Machine learnig
- R conenectors - Statistics
- Hive - SqlQuery
- Habse - Columnar Store
- Ambari - Provisioning
-Managing an MOnitoring
Hadoop Clusters
- Evolução
- 2015 - HDFS, MR + Yarn, Zookeeper, Hbase,
Mahout, Pig, Hive, Avro, Sqoop, Oozie, Flume,
Kafka, Impala, Spark
- 2012 - HDFS, MR + Yarn, Zookeeper, Hbase,
Mahout, Pig, Hive, Avro, Sqoop, Oozie, Flume,
Kafka, Impala.
- 2011 - HDFS, MR + Yarn, Zookeeper, Hbase,
Mahout, Pig, Hive, Avro, Sqoop, Oozie, Flume.
- 2010 - HDFS, MR , Zookeeper, Hbase,
Mahout, Pig, Hive, Avro, Sqoop.
- 2009 - HDFS, MR, Zookeeper, Hbase,
Mahout, Pig, Hive.
- 2008 - HDFS, MR , Zookeeper, Hbase.
- 2006 - HDFS, MR.
- aula 2 - Vmware
- Comandos
Linux
- gedit – Abre editor de arquivo
- ls – Lista o conteúdo
- mkdir – cria
diretório
- mv – renomeia ou
move
- cd – muda de
diretório
- cp - copia
- chmod – altera permissões
- more – mostra o conteúdo do arquivo paginando
- cat – mostra todo conteúdo do
arquivo
- grep – pesquisa o conteúdo de um
arquivo
- rm – remove o
arquivo
- Aula 02 parte 3
- - Verificar instalação do Java - Configurar ssh -
Configurar Hadoop - Formatar o NameNode -
Iniciar os processos do HDFS - Iniciar os
processos do MapReduce
- Verificar instalação do
java
- [root@localhost ~]# java -version
- Configurar ssh
- [root@localhost ~]# mount /dev/sda1 /mnt
- [root@localhost ~]# /etc/init.d/sshd start
- [root@localhost ~]# ssh-keygen -t rsa -P ""
- [root@localhost ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- [root@localhost ~]# ssh
localhost
- configurar hadoop.
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
- Fazer
downoload
- descompactar na pasta
- mover para diretorio hadoop
- editar arquivo
hadoop-env.sh
- possui os dados das variáveis
de ambiente do java
- editar arquivo
core-site.xml
- configura a pasta temporaria, o
endereço do navegador e a porta
de conexão
- editar arquivo mapred-site.xml
- configura o endereço do navegador
para visualizar status do job tracker
- editar arquivo
hdfs-site.xml
- configura a qtde de réplicas dos
arquivos e o tamanho de cada
bloco
- formatar
namenode
- inicia processos hdfs
- start-dfs.sh
- inicia processos mapReduce
- start-mapred.sh