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

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

Implementação LDAP e Java

Injeção de SQL

Gerencie suas informações através de instruções SQL com selects turbinados (para leigos e experts)

Instalando o poderoso banco de dados IBM DB2!

MongoDB Aggregation

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts