Requisitos iniciais:
*ps: Este tutorial foi testado com o sistema operacional Ubuntu 16.04 e 14.04. Caso deseje configurar em uma versão mais antiga, recente ou em outro SO, pequenas mudanças podem ocorrer nos procedimentos apresentados.
O projeto Apache Hadoop é um software de código aberto mantido pela Apache Foundation que tem como propósito fornecer uma implementação de código aberto do modelo de programação MapReduce de forma confiável e escalável. O Hadoop é projetado para ampliar o processamento de um único servidor em milhares de máquinas, onde cada uma das máquinas oferecem poder de processamento e armazenamento local. Esta ferramenta é utilizada para processamento em batch de grandes volumes de dados (Big Data). Atualmente, o Apache Hadoop é uma das ferramentas mais conhecidas para processamento distribuído, mas existem outras ferramentas similares que se integram ao Hadoop, como o Apache Spark, Apache Storm e dentre outros.
*para mais informações a respeito do Apache Hadoop acessem o site http://hadoop.apache.org/
Neste tutorial você irá aprender a configurar o Apache Hadoop no modo Multi Node. Montando um ambiente capaz de executar seus primeiros scripts em MapReduce.
Primeiramente configure todas as máquinas que deseja montar um cluster Hadoop no modo single node. Para configurar basta seguir as instruções disponíveis no seguinte link.
Outro ponto importante é a configuração do ssh sem senha entre todas máquinas que você pretende montar o cluster, o que inclui ela mesma (localhost). Para realizar essa tarefa basta seguir as instruções do tutorial disponibilizado no portal Viva o Linux.
Após realizada essa primeira etapa faça as devidas modificações para que o Hadoop funcione em modo cluster. Para isso esse tutorial foi dividido em três tipos de configurações, nó master, slaves e para ambos.
Para o nó master basta editar o arquivo de configuração etc/hadoop/hdfs-site.xml:
No caso do nó master iremos manter apenas a configuração do namenode, removendo a propriedade do datanode:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Crie o arquivo com os endereços IP’s das máquinas slaves do Hadoop no diretório etc/hadoop:
Adicione o IP de todas as máquinas slaves em etc/hadoop/slaves:
Adicione os endereços IP’s ou hostname de cada uma das máquinas slaves:
*ps: as informações deste arquivo devem ser apenas os IP’s ou Hostname das máquinas separadas por quebra de linha (enter)
Para os nós slaves iremos manter a configuração do datanode, removendo a propriedade namenode:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Para ambas as máquinas tanto master e slave iremos manter a configuração do diretório tmp e iremos configurar o IP do nó master (Namenode) com a propriedade fs.defaultFS:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Edite e adicione as seguintes propriedades ao arquivo yarn-site.xml:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Após as devidas configurações, logue via ssh na máquina master e formate o namenode:
Inicie o Hadoop e verificar se ele está funcionando em modo cluster:
Se tudo der certo, verifique os processos Hadoop que estão executando no nó master:
Como você está acessando o nó master deve aparecer para você apenas os seguintes processos:
Acesse cada um dos nós slaves e verifique os processos que Hadoop que estão executando:
Como você está acessando os nós slave deve aparecer para você apenas os seguintes processos:
Se tudo estiver ok, pronto temos o Apache Hadoop configurado em modo Multi Node ;)
Material desenvolvido durante o meu Mestrado no Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (ICMC-USP). Além disso, faço um agradecimento em especial ao Laboratório de Sistemas Distribuídos e Programação Concorrente (LaSDPC), o qual faço parte que me permitiu a criação deste material. Por fim, informo que é permitido livremente a reprodução integral deste material desde que sejam feitas as devidas referências ao autor ;)
[1] Apache Foundation. Hadoop: Setting up a Single Node Cluster. Acessado em Agosto de 2016. Disponível em: http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html
[2] Apache Foundation. Hadoop: Hadoop Cluster Setup. Acessado em Outubro de 2016. Disponível em: http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/ClusterSetup.html
[3] Michael G. Noll. Running Hadoop on Ubuntu Linux (Multi-Node Cluster). Acessado em Outubro de 2016. Disponível em: http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/