Tutorial hadoop - Guia prático de um cluster com 3 computadores

Seu chefe disse que para aumentar o lucro da empresa é necessário criar um buscador de site (ex.: Google), ou seja, fazer uma pesquisa de forma eficiente em um arquivo com 10GB de tamanho por exemplo. Então conheça na prática como a ferramenta hadoop pode lhe ajudar.

[ Hits: 36.324 ]

Por: Ronaldo Borges em 21/12/2015 | Blog: https://www.facebook.com/ronyjah1


Instalação e configuração do hadoop



Passo 1 - É necessário ter o java versão superior a 1.7 instalado em todas as máquinas do cluster antes de seguir os próximos passos. Para verificar se está instalado execute:

# java -version

Resultado esperado:

java version "1.7.x_xx"

Obs.: o hadoop deve ser instalado em todas as máquinas e configurados da mesma forma como descrito abaixo;

Passo 2 - Fazer o download do hadoop. O binário pode ser baixado no link:
Passo 3 - execute:

# tar -xvzf hadoop-2.6.2.tar.gz

Passo 4 - Os arquivos de configuração do sistema de arquivo HDFS é o hdfs-site.xml no qual dizemos o número de replicações dos blocos. Edite o arquivo hdfs-site.xml localizado no diretorio hadoop-2.6.2/etc/hadoop/:

<configuration>
<property>
  <name>dfs.replication</name>
  <value>2</value>
  <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  </description>
</property>
</configuration>

O Mapreduce é a ferramenta dentro do hadoop usada controle das tarefas map-reduce entre os datanode(slaves). Como o mapreduce é um serviço crítico e em suas versões iniciais não haviam servidor mapreduce de backup, criou-se então, outra ferramenta com base no algorítmo de mapreduce mais robusta contra falhas de único nó, chamado YARN. O serviço para gerenciamento das tarefas no YARN é chamado resourcemanager e normalmente roda no mesmo computador no namenode.

Portanto o Hadoop-master, além de gerenciar o sistema de arquivos do cluster (namenode), será responsável por gerenciar a execução da tarefa (resourcemanager) e seu arquivo de configuração é o yarn-site.xml

Passo 5 - Adotamos o yarn em nosso cluster porém devemos informar ao hadoop qual o gerenciar de tarefas escolhido. Desta forma edite o arquivo hadoop-2.6.2/etc/hadoop/mapred-site.xml:

</configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>

Passo 6 - A seguir configuramos o yarn-site.xml localizado em hadop-2.6.2/etc/hadooop/:

<configuration>

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hadoop-master</value>
  <description>Neste campo informamos o computador que rodará o resourcemanager
  </description>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

</configuration>

Passo 7 - Edite o arquivo hadoop-2.6.2/etc/hadoop/hadoop-env.sh informe o local dos binários do java.

Obs.: normalmente está localizado no diretório /usr/.

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr

Passo 8 - Continue no arquivo hadoop-env.sh e encontra e edite a linha abaixo:

#export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"

Passo 9 - Replique as configurações acima para todas as máquinas do cluster (slave-1 e slave-2).

Passo 10 - Somente na máquina hadoop-master edite o arquivo hadoop-2.6.2/etc/hadoop/slaves informando as máquinas escravas que compõem o cluster, conforme abaixo:

slave-1
slave-2

Página anterior     Próxima página

Páginas do artigo
   1. Descrição
   2. Configurando o ambiente nos computadores para receber o cluster hadoop
   3. Instalação e configuração do hadoop
   4. Iniciando o cluster hadoop
   5. Testando o cluster Hadoop
   6. Possíveis problemas
Outros artigos deste autor

Tutorial - Aplicação em C para transferência de arquivo usando socket TCP e Thread

Leitura recomendada

Configurando Zabbix Server no Debian

Zabbix Server 2.0 no Ubuntu Server 12.04 - Instalação e configuração

WebHTB - Controle de banda de internet

Monitorando Rede com Zabbix no Debian 7

Criando regras simples com IP6Tables

  
Comentários
[1] Comentário enviado por Ed_slacker em 21/12/2015 - 13:55h

Para fins de estudo e conhecimento o cenário proposto pelo artigo é valido. Em ambiente real não. Só pelo overhead gerado pelas tecnologias citadas mais a infraestrutura, a aplicação desta solução não vale a pena. O ecossistema Haddop deve preferencialmente ser usado quando REALMENTE o desafio de coleta, processamento e análise de dados demandam artilharia pesada! Deixo como sugestão a leitura desta apresentação e veja como problemas similares com um volume muito mais brutal de dados foram analisados usando apenas LINUX! http://slides.com/ronie/fbp_2015#/

[2] Comentário enviado por Lwkas em 28/12/2015 - 17:35h

Muito bom!

[3] Comentário enviado por ronyjah em 28/12/2015 - 20:44h


[2] Comentário enviado por Lwkas em 28/12/2015 - 17:35h

Muito bom!


Fico agradecido por seu elogio, especialmente se este artigo for útil.

[4] Comentário enviado por HenriqueSantana em 17/05/2016 - 23:03h

Cara, parabéns. Ótimo post de material riquíssimo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts