Instalação da Plataforma Hadoop [Artigo]
O Apache Hadoop é uma estrutura de código aberto para armazenamento distribuído de Big Data e processamento de dados em clusters de computadores.
[ Hits: 5.584 ]
Por: Jefferson em 19/03/2019
Instalação do Hadoop
Instalação Hadoop: Configurando um Single Node Cluster
O projeto é baseado nos seguintes componentes:
Hadoop Common - Contém as bibliotecas e utilitários Java necessários para outros módulos do Hadoop.
HDFS - Hadoop Distributed File System - Um sistema de arquivos escalável baseado em Java, distribuído entre vários nós.
MapReduce - Estrutura do YARN para processamento paralelo de Big Data.
Hadoop YARN - Um framework para gerenciamento de recursos de cluster.
Existem duas maneiras de instalar o Hadoop, Single Node (Nó Único) e Multi Node (Nó Múltiplo).
O Single Node Cluster, significa apenas um DataNode em execução e a configuração de todos os NameNode, DataNode, ResourceManager e NodeManager em uma única máquina, na maioria dos casos, é utilizado para estudos e testes.
Para testar se os Jobs do Oozie (sistema de agendamento de fluxo de trabalho baseado em servidor para gerenciar trabalhos do Hadoop) agendaram todos os processos, como coletar, agregar, armazenar e processar os dados em uma sequência adequada, usamos o Single Node Cluster. Ele pode testar com facilidade e eficiência o fluxo de trabalho sequencial em um ambiente menor em comparação com ambientes grandes que contêm terabytes de dados distribuídos em centenas de máquinas (multi node).
Java 8 (jdk8)
Hadoop 3.+
CentOS (Pode ser utilizado em outros sistemas, porém, só atente-se à questão do Java, variáveis de ambiente).
Hostname configurado
Instalação Hadoop
Passo 1: faça o download do JDK 8, nesta documentação, utilizaremos a versão 8u101.rpm.
Passo 2: instale o JDK:
# rpm -ivh jdk8u101-linux-x64.rpm
Passo 3: crie um usuário e senha para o Hadoop, apontando sua home para /opt/hadoop:
# useradd -d /opt/hadoop hadoop
Passo 4: faça o download do Hadoop (Apache Download Mirrors). Nesta documentação, versão 3.2.0.
# wget http://ftp.unicamp.br/pub/apache/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz
Passo 5: extraia-o em /opt/hadoop/:
# tar -zxvf hadoop-3.2.0.tar.gz -C /opt/hadoop/
Passo 6: troque as permissões da pasta para o usuário e grupo "hadoop":
# chown -R hadoop:hadoop /opt/hadoop/
Passo 7: logue no usuário e sete algumas variáveis de ambiente:
Adicione as linhas abaixo no final do arquivo:
## Variaveis Java
## Variaveis Hadoop
Passo 8: agora, carregue as variáveis de ambiente e verifique o status delas:
Passo 9: dentro da home do usuário "hadoop", localize a pasta etc/hadoop/. Ela é responsável pelas principais configurações do Hadoop. Abra o arquivo "core-site.xml" e altere para o conteúdo abaixo:
O "core-site.xml" informa ao Daemon do Hadoop onde o NameNode é executado no Cluster. Ele contém configurações do núcleo do Hadoop, como configurações de I/O que são comuns ao HDFS e MapReduce.
Passo 10: ainda na pasta etc/hadoop/, edite o arquivo "hdfs-site.xml" com o conteúdo abaixo:
<name>dfs.permission</name>
O "hdfs-site.xml" contém definições de configuração dos Daemons do HDFS (NameNode, DataNode, Secondary NameNode). Também inclui o fator de replicação e o tamanho do bloco do HDFS.
Como especificamos /opt/volume/ como nosso armazenamento do sistema de arquivos Hadoop, precisamos criar esses dois diretórios (datanode e namenode) a partir da conta raiz e conceder todas as permissões para o Hadoop:
# chown -R hadoop:hadoop /opt/volume
Passo 11: Edite o arquivo mapred-site.xml:
Neste caso, estamos definindo que o framework a ser utilizado é o yarn MapReduce. O "mapred-sites.xml" contém definições de configuração do aplicativo MapReduce, como o número de JVMs que podem ser executados em paralelo, o tamanho do mapeador e o processo de redutor, núcleos de CPU disponíveis para um processo etc.
Em alguns casos, o arquivo não está disponível. Neste caso, é necessário criar o arquivo "mapred-site.xml" e adicionar o conteúdo.
Passo 12: edite o arquivo yarn-site.xml:
O arquivo "yarn-site.xml" contém definições de configuração relacionadas ao ResourceManager e ao NodeManager, como o tamanho de gerenciamento de memória do aplicativo, a operação necessário no programa e algoritmo etc.
Passo 13: edite o arquivo "hadoop-env.sh" e adicione o diretório do Java (echo $JAVA_HOME).
Insira uma linha com a variável do seu Java:
O arquivo "hadoop-env.sh" contém as variáveis de ambiente que serão usadas no script que roda o Hadoop, Java_home etc.
Passo 14: edite o arquivo "slaves" ($HADOOP_HOME/etc/hadoop/slaves) com o seu hostname:
Passo 15: após as devidas edições, é necessário formatar o NameNode.
Esse passo irá formatar o HDFS via NameNode. Este comando é executado apenas uma vez. Formatá-lo significa inicializar o diretório especificado pela variável "dfs.name.dir". Nunca formate ou execute o sistema de arquivos Hadoop, pois perderá todos os seus dados armazenados no HDFS.
Passo 16: após formatado o NameNode, basta iniciar todos os Daemons:
O comando acima é uma combinação dos comandos start-dfs.sh, start-yarn.sh e mr-jobhistory-daemon.sh. Caso necessário, você pode executá-los individualmente:
Iniciar o NameNode: o NameNode é a peça central de um sistema de arquivos HDFS. Ele mantem a árvore de diretórios de todos os arquivos armazenados no HDFS e rastreia todo o arquivo armazenado no cluster.
Iniciar NodeManager: na inicialização, um DataNode se conecta ao NameNode e responde às solicitações do NameNode para diferentes operações.
Iniciar o ResourceManager: ResourceManager é o principal que arbitra todos os recursos de cluster disponíveis e, portanto, ajuda a gerenciar os aplicativos distribuídos em execução no sistema YARN. Seu trabalho é gerenciar cada NodeManagers e o ApplicationMaster de cada aplicativo.
Iniciar o NodeManager: o NodeManager em cada estrutura de máquina é o agente responsável por gerenciar contêineres, monitorar seu uso de recursos e reportar o mesmo ao ResourceManager.
Iniciar o JobHistoryServer: JobHistoryServer é responsável por atender todas as solicitações relacionadas ao histórico de tarefas do cliente.
Passo 17: para verificar todos os serviços do Hadoop que estão rodando, utilize o comando:
No stdout, informará os serviços junto aos PIDs utilizados, deverão ser exibidos 6 processos no total:
ResourceManager;
JobHistoryServer;
DataNode;
E NodeManager.
Passo 18: após iniciado os processos, pode conferir as portas utilizadas por eles. Cada porta é responsável por um recurso/microserviço do Hadoop.
Passo 19: para testar o cluster do sistema de arquivos "hadoop", crie um diretório aleatório no sistema de arquivos HDFS e copie um arquivo do sistema de arquivos local para o armazenamento HDFS (inserção de dados no HDFS), respectivamente:
hdfs dfs -mkdir -p /armazenamento_hdfs
hdfs dfs -put ARQUIVO_A_SER_HOSPEDADO /armazenamento_hdfs
Para visualizar um conteúdo de arquivo ou listar um diretório dentro do sistema de arquivos HDFS, utilize, respectivamente:
hdfs dfs -cat /armazenamento_hdfs/ARQUIVO_HOSPEDADO
hdfs dfs -ls /armazenamento_hdfs
Enfim, para recuperar dados do HDFS para o nosso sistema de arquivos local, use o comando:
hdfs dfs -get /armazenamento_hdfs ./
Caso queira maiores informações sobre os comandos do HDFS:
Passo 20: a porta principal de operação é a 9870, ela possui o Dashboard que faz a conexão com todos os recursos. Para acesso, abra o navegador e utilize o DNS configurado em sua máquina na porta 9870 ou utilize localhost (caso serviço e navegador sejam a mesma máquina):
URL: http://dns:9870/dfshealth.html
URL: http://localhost:9870/dfshealth.html
Passo 21: caso queira verificar via interface gráfica os conteúdos armazenados, abra o explorer.html: