Preparação do Ambiente Virtual
Para configurar um ecossistema Hadoop funcional, o primeiro passo é a preparação das máquinas virtuais (VMs) utilizando o VirtualBox. Recomenda-se o uso do CentOS 7 como sistema operacional base.
A configuração de rede é um ponto crítico. Para permitir que o host e as máquinas virtuais se comuniquem livremente, utilize o Modo Bridge (Placa em Modo Ponte). Caso encontre problemas de conectividade (falha no ping), certifique-se de desativar o firewall no CentOS:
systemctl stop firewalld
systemctl disable firewalld
Instalação e Configuração do Java (JDK)
O Hadoop requer o ambiente de execução Java. Muitas vezes, a versão OpenJDK instalada por padrão não contém todas as bibliotecas necessárias (como tools.jar). Recomenda-se remover o OpenJDK e instalar a versão oficial do Oracle JDK.
# Remover versões existentes do OpenJDK
rpm -qa | grep openjdk | xargs rpm -e --nodeps
# Instalar o pacote JDK (exemplo com versão 7u79)
rpm -ivh jdk-7u79-linux-x64.rpm
Após a instalação, configure as variáveis de ambiente no arquivo /etc/profile:
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
Aplique as alterações e valide com um programa simples:
source /etc/profile
# Teste rápido de compilador
cat <<EOF > HadoopCheck.java
public class HadoopCheck {
public static void main(String[] args) {
System.out.println("Java configurado corretamente para o Hadoop.");
}
}
EOF
javac HadoopCheck.java
java HadoopCheck
Configuração de Hostname e Rede
Cada nó do cluster deve ter um nome de identificação único. Altere o nome da máquina permanentemente:
hostnamectl set-hostname node-master
# Para aplicar imediatamente sem reiniciar:
hostname node-master
Edite o arquivo /etc/hosts para mapear os endereços IP de todos os nós (Master e Slaves):
192.168.1.100 node-master
192.168.1.101 node-slave-01
Autenticação SSH Sem Senha
O Hadoop utiliza SSH para gerenciar os nós do cluster. É essencial configurar o acesso sem senha do Master para os Slaves.
# No nó Master:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# Copiar a chave para o Slave:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node-slave-01
Instalação e Configuração do Hadoop
Extraia os binários do Hadoop e configure as variáveis de ambiente necessárias.
tar -zxvf hadoop-2.6.4.tar.gz -C /opt/
export HADOOP_HOME=/opt/hadoop-2.6.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
Os principais arquivos de configuração localizados em $HADOOP_HOME/etc/hadoop/ que devem ser editados são:
- core-site.xml: Define o sistema de arquivos padrão (NameNode).
- hdfs-site.xml: Define a replicação e diretórios de dados.
- yarn-site.xml: Configurações do gerenciador de recursos.
- mapred-site.xml: Define o framework MapReduce.
- slaves: Lista os endereços dos nós escravos.
Após configurar o Master, você pode replicar a pasta do Hadoop para os outros nós via rede:
scp -r /opt/hadoop-2.6.4 root@node-slave-01:/opt/
Inicialização do Cluster
Antes de iniciar o serviço pela primeira vez, o sistema de aqruivos HDFS deve ser formatado:
# Formatar o NameNode
hdfs namenode -format
# Iniciar os serviços de HDFS e YARN
start-dfs.sh
start-yarn.sh
Para verificar se os processos estão ativos, utilize o comando jps. No nó Master, você deve ver NameNode, SecondaryNameNode e ResourceManager. No nó Slave, devem constar DataNode e NodeManager.
O status do cluster também pode ser verificado via navegador através da interface web do NameNode (geralmente na porta 50070): http://[IP_DO_MASTER]:50070.