Instalação da Plataforma Hadoop

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: 7.509 ]

Por: Jefferson em 19/03/2019


Instalação do Hadoop



Instalação Hadoop: Configurando um Single Node Cluster

O Apache Hadoop é uma estrutura de código aberto para armazenamento distribuído de Big Data e processamento de dados em clusters de computadores.

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).

Pré-requisitos:
  • 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
# passwd 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:

# su - hadoop

vi .bash_profile

Adicione as linhas abaixo no final do arquivo:

## Variaveis Java
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

## Variaveis Hadoop
export HADOOP_HOME=/opt/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

Passo 8: agora, carregue as variáveis de ambiente e verifique o status delas:

source .bash_profile
echo $HADOOP_HOME
echo $JAVA_HOME
java -version
hadoop version

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:

vi core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

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:

vi hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permission</name>
<value>false</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///opt/volume/datanode</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///opt/volume/namenode</value>
</property>
</configuration>

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:

su - root

# mkdir -p /opt/volume/namenode
# mkdir -p /opt/volume/datanode
# chown -R hadoop:hadoop /opt/volume
# exit

Passo 11: Edite o arquivo mapred-site.xml:

vi mapred-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

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:

vi yarn-site.xml

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

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).

vi hadoop-env.sh

Insira uma linha com a variável do seu Java:

export JAVA_HOME=/usr/java/default/

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:

vi etc/hadoop/slaves

Passo 15: após as devidas edições, é necessário formatar o NameNode.

hdfs namenode -format

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:

start-all.sh

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.

hadoop-daemon.sh start namenode

Iniciar NodeManager: na inicialização, um DataNode se conecta ao NameNode e responde às solicitações do NameNode para diferentes operações.

hadoop-daemon.sh start datanode

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.

yarn-daemon.sh start resourcemanager

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.

yarn-daemon.sh start nodemanager

Iniciar o JobHistoryServer: JobHistoryServer é responsável por atender todas as solicitações relacionadas ao histórico de tarefas do cliente.

mr-jobhistory-daemon.sh start historyserver

Passo 17: para verificar todos os serviços do Hadoop que estão rodando, utilize o comando:

jps

No stdout, informará os serviços junto aos PIDs utilizados, deverão ser exibidos 6 processos no total:
  • NameNode;
  • ResourceManager;
  • JobHistoryServer;
  • Jps;
  • 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:

hdfs dfs -help

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:
  • http://localhost:9870/explorer.html

Instalação concluída.

   

Páginas do artigo
   1. Instalação do Hadoop
Outros artigos deste autor

Redirecionamentos, Pipes e Fluxos

Leitura recomendada

Entendendo o LDAP

Injeção de SQL

OpenAI - Como usar uma Inteligência Artificial a seu favor

MongoDB Aggregation

Implementação LDAP e Java

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts