Sunteți pe pagina 1din 11

CENTRO UNIVERSITRIO UNIVATES

PROCESSAMENTO DE DADOS DISTRIBUDOS COM HADOOP

Marcelo Corra da Silva e Jeremias Reckziegel

Lajeado, dez de 2017


INTRODUO

Hadoop um framework open source desenvolvido em Java para executar


aplicaes que manipulem uma grande quantidade de dados em ambientes
clusterizados em vez de em poderosos computadores.

DEFINIES

Hadoop destaca-se como uma tecnologia aberta, baseada no paradigma


MapReduce, que utiliza a computao paralela e distribuda para resolver o
problema da escalabilidade no processamento de Bigdata com garantias de
tolerncia a falhas.

Como principais caractersticas o Hadoop :

Escalvel: pode armazenar e processar petabytes sem problemas.


Econmico: o Hadoop distribui os dados e o processamento atravs
dos clusters. Estes clusters podem ter milhares de ns (mquinas).
Eficiente: por distribuir os dados, o Hadoop pode process-los em
paralelo por meio dos ns, onde os dados esto alocados. Isto feito
de forma extremamente rpida.
Confivel: ele automaticamente mantm mltiplas copias dos dados e
automaticamente remaneja as tarefas em caso de falhas.

O mesmo possui uma implementao de cdigo aberto do paradigma de


programao Map-Reduce. Map-Reduce um paradigma de programao
introduzido pelo Google para processar e analisar grandes conjuntos de dados.
Todos esses programas que so desenvolvidos nesse paradigma realizam o
processamento paralelo de conjuntos de dados e podem, portanto, ser executados
em servidores sem muito esforo.
Hadoop responsvel por dividir os dados de entrada em blocos
independentes, que so processados de forma completamente paralela, pelas
chamadas map tasks. Ele ordena as sadas das map tasks, que so os dados de
entrada das reduce tasks. Normalmente tanto a entrada quanto a sada da tarefa
so armazenadas no sistema de arquivo. O MapReduce se encarrega de agendar
as tarefas, monitorar e re-executar em caso de falha.

MapReduce

MapReduce o modelo de programao do Hadoop. A escolha de um modelo


restringe a organizao do seu programa, porm graas a isso consegue cuidar dos
bastidores por voc.

Alm disso o fato de limitar o modelo de programao ao MapReduce deixa claro


para o programador que o processamento paralelo e o faz programar pesando
nisso.

As seguintes etapas so seguidas no MapReduce:

Iterar sobre o grande nmero de registros


Tirar algo de interesse (selecionar/filtrar, transformar, decompor)
Organizar resultados parciais
Agregar resultados parciais e gerar uma sada

O que o usurio faz?

Especifica seleo/filtragem/transformao
Especifica a agregao

O que a ferramenta faz?

Cria trabalhadores e os instancia remotamente


Particiona e distribui a entrada
Comunica dados intermedirios, busca resultados
Monitora mquinas e lida com falhas
Funes Map e Reduce

Map: (chave, valor) >>> (chave, valor)

Recebe uma chave de entrada e um valor


Produz um ou mais pares
Bom para: d
esagregar, filtrar, transformar

Reduce: (chave, lista de valores) >>> (chave, valor)

Recebe uma chave de entrada e uma lista de valores


Produz um(ou nenhum) par
A chave frequentemente a mesma e o valor uma agregao de
todos os valores da lista
Bom para: agregar resultados parciais

Exemplo de execuo MapReduce WordCount

Vamos considerar 3 trabalhadores (workers). Cada trabalhador recebe um arquivo


de entrada, sendo estes respectivamente:

Arquivo 1: isto um teste


Arquivo 2 : testando hadoop
Arquivo 3 : testando com um teste

Sada do Map

Worker 1: (isto 1), ( 1), (um 1), (teste 1).


Worker 2 : (testando 1), (hadoop 1).
Worker 3 : (testando 1), (com 1), (um 1), (teste 1).

Entrada do Reduce

Reduce 1: (isto,[1])
Reduce 2: ( , [1])
Reduce 3: (testando , [1,1])
Reduce 4: (um, [1, 1])
Reduce 5: (Hadoop, [1])
Reduce 6: (com, [1])
Reduce 7: (teste, [1,1])
Sada do Reduce

Reduce 1: (isto 1)
Reduce 2: ( 1)
Reduce 3: (testando 2)
Reduce 4: (um 2)
Reduce 5: (Hadoop 1)
Reduce 6: (com 1)
Reduce 7: (teste 2)

HDFS

O HDFS (Hadoop Distributed File System), que foi baseado no GFS (Google File
System), como o prprio nome sugere um sistema de arquivos distribudo. Este
sistema foi desenvolvido para ser escalvel, tolerante a falhas, garantir alto
gerenciamento, confiabilidade, usabilidade e desempenho, alm de ser capaz de
trabalhar em conjunto com MapReduce.

O interessante que quando voc for desenvolver a sua aplicao voc no precisa
se preocupar onde os dados esto, o prprio Hadoop se encarrega dessa tarefa, ou
seja, para a sua aplicao isso transparente, seria como se os dados estivessem
armazenados localmente.

Devido ao fato de o HDFS distribuir o armazenamento e o processamento entre


vrios clusters, a associao dos recursos armazenados pode crescer com a
demanda enquanto continua a ser econmico.

INSTALAO HADOOP MODO DISTRIBUDO

Utilizado duas mquinas virtuais para a instalao sendo adicionado uma como
master e outra como slave:
Host node01 (Master)
Host node02 (Slave)

Para instalao do hadoop necessrio que os hosts possuam instalado o java,


sendo o principal pr-requisito para Hadoop.
Aps o java devidamente instalado o passo seguinte a instalao e
ccnfigurao do Hadoop:
Comandos para instalao do Haddop:

- Criao do dirtretorio onde estar o software


mkdir /root/hadoop

- Download do Hadoop
wget http://apache.mesi.com.ar/hadoop/common/hadoop-1.2.1/hadoop-1.2.0.tar.gz

-Descompactar o hadoop e mover seus arquivos para o diretrio criado e configurar


seus arquivos de sistema conforme abaixo:

tar -xzf hadoop-1.2.0.tar.gz


mv hadoop-1.2.0 hadoop

Configurando o core-site.xml:

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop-master:9000/</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

Configurar hdfs-site.xml
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hadoop/dfs/name/data</value>
<final>true</final>
</property>

<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/hadoop/dfs/name</value>
<final>true</final>
</property>

<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

Configurar mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop-master:9001</value>
</property>
</configuration>

Instalar Hadoop em Servidor slave


Instalar Hadoop em todos os servidores subordinados, seguindo os comandos.

# su hadoop
$ cd /opt/hadoop
$ scp -r hadoop node02:/root/hadoop

Configurando Hadoop no servidor master


Abrir o master server e configure-o, seguindo os comandos.

$ cd /root/hadoop

Configurando N Principal
$ vi conf/masters
node01

Configurando n escravo
$ vi conf/slaves
node02
Formatar hdfs

$ cd /root/hadoop/
$ bin/hadoop namenode format

Iniciar Hadoop

$/root/hadoop/bin/start-all.sh

Criar diretorio no hdfs

$hadoop dfs -mkdir /dir

Enviar Arquivo para a partio HDFS

$/root/hadoop/bin/hadoop fs -putt arquivo /dir

Teste Hadoop Modo distribudo

Formatando o namenode
root@node01:~# sudo su -
root@node01:~# hadoop-0.20 namenode -format
10/05/11 18:39:58 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = master/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.20.2+228
STARTUP_MSG: build = -r cfc3233ece0769b11af9add328261295aaf4d1ad;
************************************************************/
10/05/11 18:39:59 INFO namenode.FSNamesystem: fsOwner=root,root
10/05/11 18:39:59 INFO namenode.FSNamesystem: supergroup=supergroup
10/05/11 18:39:59 INFO namenode.FSNamesystem: isPermissionEnabled=true
10/05/11 18:39:59 INFO common.Storage: Image file of size 94 saved in 0 seconds.
10/05/11 18:39:59 INFO common.Storage:
Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.
10/05/11 18:39:59 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master/127.0.1.1
************************************************************/
root@node01:~#

Iniciando o namenode
root@master:~# /usr/lib/hadoop-0.20/bin/start-dfs.sh
starting namenode, logging to
/usr/lib/hadoop-0.20/bin/../logs/hadoop-root-namenode-mtj-desktop.out
192.168.108.135: starting datanode, logging to
/usr/lib/hadoop-0.20/bin/../logs/hadoop-root-datanode-mtj-desktop.out
192.168.108.134: starting datanode, logging to
/usr/lib/hadoop-0.20/bin/../logs/hadoop-root-datanode-mtj-desktop.out
192.168.108.133: starting secondarynamenode,
logging to
/usr/lib/hadoop-0.20/logs/hadoop-root-secondarynamenode-mtj-desktop.out
root@master:~# jps
7367 NameNode
7618 Jps
7522 SecondaryNameNode
root@master:~#

Inspecionando o datanode em um dos ns escravos


root@slave1:~# jps
10562 Jps
10451 DataNode
root@slave1:~#

Iniciando os daemons de MapReduce


root@master:~# /usr/lib/hadoop-0.20/bin/start-mapred.sh
starting jobtracker, logging to
/usr/lib/hadoop-0.20/logs/hadoop-root-jobtracker-mtj-desktop.out
192.168.108.134: starting tasktracker, logging to
/usr/lib/hadoop-0.20/bin/../logs/hadoop-root-tasktracker-mtj-desktop.out
192.168.108.135: starting tasktracker, logging to
/usr/lib/hadoop-0.20/bin/../logs/hadoop-root-tasktracker-mtj-desktop.out
root@master:~# jps
7367 NameNode
7842 JobTracker
7938 Jps
7522 SecondaryNameNode
root@master:~#
Inspecionando o datanode em um dos ns escravos
root@slave1:~# jps
7785 DataNode
8114 Jps
7991 TaskTracker
root@slave1:~#

Testando o HDFS
root@master:~# hadoop-0.20 fs -df
File system Size Used Avail Use%
/ 16078839808 73728 3490967552 0%
root@master:~# hadoop-0.20 fs -ls /
Found 1 items
drwxr-xr-x - root supergroup 0 2010-05-12 12:16 /tmp
root@master:~# hadoop-0.20 fs -mkdir test
root@master:~# hadoop-0.20 fs -ls test
root@master:~# hadoop-0.20 fs -rmr test
Deleted hdfs://192.168.108.133:54310/user/root/test
root@master:~# hadoop-0.20 fsck /
.Status: HEALTHY
Total size: 4 B
Total dirs: 6
Total files: 1
Total blocks (validated): 1 (avg. block size 4 B)
Minimally replicated blocks: 1 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 0 (0.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 2
Average block replication: 2.0
Corrupt blocks: 0
Missing replicas: 0 (0.0 %)
Number of data-nodes: 2
Number of racks: 1

The filesystem under path '/' is HEALTHY


root@master:~#

S-ar putea să vă placă și