Para configurar o modo totalmente distribuído você deve configurar o modo pseudo-distribuído como vimos na página anterior.
Existem poucas diferenças entre a configuração do pseudo-distribuído e o modo completamente distribuído. Na verdade, o Hadoop só precisa estar instalado em todos os nós do nosso cluster e podemos fazer isso de uma maneira muito simples:
# rsync -avxP /usr/local/hadoop root@[ip_do_cliente]:/usr/local/hadoop
Mas para que isso aconteça de uma maneira transparente temos que configurar o SSH do server, para autenticação sem senha, em todos os outros nós que farão parte do nosso cluster como visto anteriormente.
Os arquivos XML tem algumas pequenas modificações:
core-site.xml - aqui definimos o uso do HDFS e o endereço do seu master e a porta que será usada:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://NOME_DO_SEU_MASTER:9000</value>
</property>
</configuration>
hdfs-site.xml - aqui está sendo definido o numero de replicações de cada arquivo do HDFS:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
mapred-site.xml - aqui passamos a bola do gerenciador de MapReduce para o Yarn e dizemos quem vai ser o Master para distribuir tarefas:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>NOME_DO_SEU_MASTER:5431</value>
</property>
<property>
<name>mapred.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml:
<configuration>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>NOME_DO_SEU_MASTER:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>NOME_DO_SEU_MASTER:8035</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>NOME_DO_SEU_MASTER:8050</value>
</property>
</configuration>
Todos os outros nós precisam estar nomeados no seu
/etc/hosts, como por exemplo:
hadoopmaster [IP]
hadoopslave1 [IP]
hadoopslave2 [IP]
hadoopslave3 [IP]
hadoopslave4 [IP]
hadoopslave5 [IP]
hadoopslave6 [IP]
hadoopslave7 [IP]
hadoopslave8 [IP]
hadoopslave9 [IP]
Agora, dois novos arquivos precisam ser criados dentro de
/usr/local/hadoop/etc/hadoop.
slaves - que são todos os computadores que farão parte do nosso cluster como "clientes":
hadoopslave1
hadoopslave2
hadoopslave3
hadoopslave4
hadoopslave5
hadoopslave6
hadoopslave7
hadoopslave8
hadoopslave9
master - que é o computador responsável pelo gerenciamento dos nós:
hadoopmaster
Teste de funcionamento: acesse http://localhost:8088