Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUÇÃO AO HADOOP®
Para que se possa processar grandes massas de dados, opta-se pelo pa-
ralelismo de dados e controle (PACHECO, 1997), o que evita redimensionamento
da capacidade de processamento (aumento de memória, CPU’s mais rápidas, e
assim por diante) a cada incremento na quantidade de dados a processar. Um
crescimento exponencial da quantidade a ser processada, levaria a uma cons-
tante readequação do sistema de computação. Visando processar dados de for-
ma paralela, pode-se contar com um agrupamento de computadores, ou clus-
ter, que deve oferecer comunicação de dados entre processos paralelos, balan-
ceamento da carga e tolerância a falhas, e com Hadoop®, um framework para
processamento em ambiente de Big Data. Desenvolvido pelo Yahoo!, atual-
mente é um projeto de código aberto (open source) de alto nível mantido pela
The Apache™ Software Foundation.
- Hadoop Common
Utilitários comuns que suportam outros módulos do Hadoop. É um con-
junto de componentes e interfaces para sistemas de arquivos distribuídos
e E/S geral (serialização, Java RPC, estruturas de dados persistentes).
- Hadoop Distributed File System (HDFS™)
Sistema de arquivos distribuído que provê acesso de alto desempenho
aos dados da aplicação.
- Hadoop YARN
Framework para agendamento dos trabalhos (job scheduling) e gerencia-
mento dos recursos do cluster.
- Hadoop MapReduce
Sistema baseado no YARN, para processamento paralelo de grandes
massas de dados (large data sets).
- Ambari™
Uma ferramenta gráfica para provisionamento, monitoramento e gerenci-
amento de clusters Hadoop.
- HBase™
Banco de dados distribuído, orientado a colunas (não relacional), que
comporta tabelas enormes de dados, contendo bilhões de linhas e mi-
lhões de colunas. Roda sobre HDFS.
- Hive™
datawarehouse distribuído. Gerencia dados armazenados em HDFS e pro-
vê uma linguagem de consulta de dados baseada em SQL, a qual é tra-
duzida em tempo de execução para as tarefas (jobs) MapReduce.
- ZooKeeper™
Coordenador de serviços centralizado de alta disponibilidade.
Versões de Hadoop
MAPREDUCE
MapReduce 1
MapReduce 2 (YARN)
Falhas
1000 ms = 1 s e 60 s = 1 min
mapreduce.map.failures.maxpercent
mapreduce.reduce.failures.maxpercent
- Falha na Application Master: YARN tenta executar uma aplicação várias
vezes no caso de falha. Por padrão, uma aplicação é marcada como "falha" se
ela falha uma vez, número que pode ser configurado no arquivo yarn-de-
fault.xml na propriedade:
yarn.resourcemanager.am.max-retries
Para exemplificar como analisar uma base de dados com MapReduce, se-
rão utilizados os dados de levantamento do clima do National Climatic Data
Center (NCDC), disponível em http://www.ncdc.noaa.gov/, como propos-
to em WHITE (2015).
Para obter os arquivos, pode-se utilizar um aplicativo FTP cliente, tal co-
mo FileZilla (figura 3):
0067011990999991950051507004...9999999N9+00001+99999999999...
0043011990999991950051512004...9999999N9+00221+99999999999...
0043011990999991950051518004...9999999N9-00111+99999999999...
0043012650999991949032412004...0500001N9+01111+99999999999...
0043012650999991949032418004...0500001N9+00781+99999999999...
Estas linhas são, então, fornecidas à função map como pares chave-va-
lor:
(0 , 0067011990999991950051507004...9999999N9+00001+99999999999...)
(106 , 0043011990999991950051512004...9999999N9+00221+99999999999...)
(212 , 0043011990999991950051518004...9999999N9-00111+99999999999...)
(318 , 0043012650999991949032412004...0500001N9+01111+99999999999...)
(424 , 0043012650999991949032418004...0500001N9+00781+99999999999...)
(0, 0067011990999991950051507004...9999999N9+00001+99999999999...)
(106, 0043011990999991950051512004...9999999N9+00221+99999999999...)
(212, 0043011990999991950051518004...9999999N9-00111+99999999999...)
(318, 0043012650999991949032412004...0500001N9+01111+99999999999...)
(424, 0043012650999991949032418004...0500001N9+00781+99999999999...)
A saída gerada pela função map é mostrada abaixo (os valores de tem-
peratura são convertidos para o tipo inteiro):
(1950 , 0)
(1950 , 22)
(1950 , −11)
(1949 , 111)
(1949 , 78)
A saída da função map é processada pelo framework MapReduce antes
de ser enviada à função reduce. Este processamento utiliza a chave para orde-
nar e agrupar os pares chave-valor. No exemplo dado, a entrada da função re-
duce seria:
(1949 , [111 , 78] )
(1950, [0 , 22 , −11] )
MapReduce garante que a entrada para cada reduce seja ordenada pela
chave. O processo pelo qual o sistema realiza a ordenação e transfere as saí-
das do map para o reduce é conhecido por shuffle. É o "coração" do MapRe-
duce.
Hadoop Distributed Filesystem (HDFS)
- Escrever uma vez e ler muitas vezes: uma análise envolve uma grande par-
te de uma base de dados, se não toda ela. Assim, otimiza-se o processo
lendo toda a base de dados ao invés da leitura registro a registro;
Obs.: Tempo de latência é a soma dos tempos de: posicionamento no setor que
contém os dados (latência rotacional) + posicionamento na trilha que con-
tém os dados (busca).
O tempo total de acesso aos dados de um disco, é igual à soma dos tempos
de: latência + transferência (do disco para a memória)
Blocos
Um sistema de arquivos para um disco simples lida com dados em bloco,
cujo tamanho define a quantidade mínima de dados que pode ser lida ou escri-
ta. Assim sendo, se um sistema de arquivos define que o tamanho do bloco é
1KB (1024 bytes), mesmo que um arquivo contenha 10 bytes de tamanho, ele
ocupará 1024 bytes em disco ao ser salvo. Naturalmente, um arquivo maior
ocupará vários blocos para seu armazenamento (por exemplo, um arquivo de
9,5 KB ocupará 10 blocos).
O HDFS também divide os dados em blocos que, por padrão, ocupam
128MB. Porém, ao contrário dos sistemas de arquivos para discos simples, em
HDFS, arquivos menores do que o tamanho do bloco não ocupam todo o espa-
ço.
Blocos HDFS são largos se comparados com blocos em discos simples
para minimizar o custo com a procura dos dados (latência).
NameNodes e DataNodes
Observe que, nesta listagem, não há um diretório chamado “users” entre os di-
retórios “tez” e “yarn”.
Já a listagem do no03 (terceira máquina) produz o seguinte:
Figura 45: Listagem do diretório /home do nó 03 do cluster
Já a execução dos comandos “hdfs dfs –ls /” (ou “hadoop fs –ls /”) e “hdfs dfs
–ls /user” (ou “hadoop fs –ls /user”), tanto do nó 02, como do nó 03, produz o
mesmo resultado:
Comando: appendToFile
Uso:
Exemplo:
Comando: cat
Uso:
Exemplo:
Comando: copyFromLocal
Copia arquivos do sistema de arquivos local para HDFS. Similar ao coman-
do put.
Uso:
Exemplo:
Comando: copyToLocal
Uso:
Exemplo:
Comando: cp
Uso:
Exemplo:
Comando: du
Exemplo:
Comando: expunge
Esvazia a lixeira.
Uso:
Comando: get
Uso:
Exemplo:
Comando: ls
Uso:
hdfs dfs -ls [-R] <args>
Exemplo:
Comando: mkdir
Uso:
Exemplo:
Comando: mv
Uso:
Exemplo:
Comando: put
Uso:
Comando: rm
Uso:
Exemplo:
APACHE HBASE
Obtido da Internet: http://hbase.apache.org/book.html
HADOOP
Obtido da Internet: http://hadoop.apache.org