Apache Hadoop é uma estrutura de código aberto usada para gerenciar, armazenar e processar dados para vários aplicativos de big data em execução em sistemas em cluster. Ele é escrito em Java com algum código nativo em C e scripts de shell. Ele usa um sistema de arquivos distribuído (HDFS) e escala de servidores únicos para milhares de máquinas.

O Apache Hadoop é baseado nos quatro componentes principais:

  • Hadoop Common: é a coleção de utilitários e bibliotecas necessárias para outros módulos do Hadoop.
  • HDFS: também conhecido como Hadoop Distributed File System distribuído em vários nós.
  • MapReduce: é uma estrutura usada para escrever aplicativos para processar grandes quantidades de dados.
  • Hadoop YARN: também conhecido como Yet Another Resource Negotiator é a camada de gerenciamento de recursos do Hadoop.

Neste tutorial, explicarei como configurar um cluster Hadoop de nó único no Ubuntu 20.04.

Pré-requisitos

  • Um servidor executando Ubuntu 20.04 com 4 GB de RAM.
  • Uma senha de root é configurada em seu servidor.

Atualize os pacotes do sistema

Antes de começar, é recomendável atualizar seus pacotes de sistema para a versão mais recente. Você pode fazer isso com o seguinte comando:

apt-get update -yapt-get upgrade -y

Assim que seu sistema estiver atualizado, reinicie-o para implementar as mudanças.

Instale Java

Apache Hadoop é um aplicativo baseado em Java. Portanto, você precisará instalar o Java em seu sistema. Você pode instalá-lo com o seguinte comando:

apt-get install default-jdk default-jre -y

Depois de instalado, você pode verificar a versão instalada do Java com o seguinte comando:

java -version

Você deve obter a seguinte mensagem:

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Criar usuário Hadoop e configurar SSH sem senha

Primeiro, crie um novo usuário chamado hadoop com o seguinte comando:

adduser hadoop

Em seguida, adicione o usuário hadoop ao grupo sudo
usermod -aG sudo hadoop

Em seguida, faça login com o usuário hadoop e gere um par de chaves SSH com o seguinte comando:

su - hadoopssh-keygen -t rsa

Você deve obter a seguinte saída:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:HG2K6x1aCGuJMqRKJb+GKIDRdKCd8LXnGsB7WSxApno hadoop@ubuntu2004
The key's randomart image is:
+---[RSA 3072]----+
|..=..            |
| O.+.o   .       |
|oo*.o + . o      |
|o .o * o +       |
|o+E.= o S        |
|=.+o * o         |
|*.o.= o o        |
|=+ o.. + .       |
|o ..  o .        |
+----[SHA256]-----+

Em seguida, adicione esta chave às chaves SSH autorizadas e dê a permissão adequada:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 0600 ~/.ssh/authorized_keys

Em seguida, verifique o SSH sem senha com o seguinte comando:

ssh localhost

Depois de fazer o login sem senha, você pode prosseguir para a próxima etapa.

Instale o Hadoop

Primeiro, faça login com o usuário hadoop e baixe a versão mais recente do Hadoop com o seguinte comando:

su - hadoopwget https://downloads.apache.org/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz

Assim que o download for concluído, extraia o arquivo baixado com o seguinte comando:

tar -xvzf hadoop-3.2.1.tar.gz

Em seguida, mova o diretório extraído para / usr / local /:

sudo mv hadoop-3.2.1 /usr/local/hadoop

Em seguida, crie um diretório para armazenar o registro com o seguinte comando:

sudo mkdir /usr/local/hadoop/logs

Em seguida, altere a propriedade do diretório hadoop para hadoop:

sudo chown -R hadoop:hadoop /usr/local/hadoop

Em seguida, você precisará configurar as variáveis ​​de ambiente do Hadoop. Você pode fazer isso editando o arquivo ~ / .bashrc:

nano ~/.bashrc

Adicione as seguintes linhas:

export HADOOP_HOME = / usr / local / hadoop
exportar HADOOP_INSTALL = $ HADOOP_HOME
exportar HADOOP_MAPRED_HOME = $ HADOOP_HOME
exportar HADOOP_COMMON_HOME = $ HADOOP_HOME
exportar HADOOP_HDFS_HOME = $ HADOOP_HOME
export YARN_HOME = $ HADOOP_HOME
exportar HADOOP_COMMON_LIB_NATIVE_DIR = $ HADOOP_HOME / lib / native
exportar PATH = $ PATH: $ HADOOP_HOME / sbin: $ HADOOP_HOME / bin
export HADOOP_OPTS = "- Djava.library.path = $ HADOOP_HOME / lib / native"

Salve e feche o arquivo quando terminar. Em seguida, ative as variáveis ​​de ambiente com o seguinte comando:

source ~/.bashrc

Configurar Hadoop

Nesta seção, aprenderemos como configurar o Hadoop em um único nó.

Configurar Variáveis ​​de Ambiente Java

Em seguida, você precisará definir as variáveis ​​de ambiente Java em hadoop-env.sh para configurar YARN, HDFS, MapReduce e configurações de projeto relacionadas ao Hadoop.

Primeiro, localize o caminho Java correto usando o seguinte comando:

which javac

Você deve ver a seguinte saída:

/usr/bin/javac

Em seguida, encontre o diretório OpenJDK com o seguinte comando:

readlink -f /usr/bin/javac

Você deve ver a seguinte saída:

/usr/lib/jvm/java-11-openjdk-amd64/bin/javac

Em seguida, edite o arquivo hadoop-env.sh e defina o caminho Java:

sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

Adicione as seguintes linhas:

export JAVA_HOME = / usr / lib / jvm / java-11-openjdk-amd64 
export HADOOP_CLASSPATH + = "$ HADOOP_HOME / lib / *. jar"

Em seguida, você também precisará baixar o arquivo de ativação Javax. Você pode baixá-lo com o seguinte comando:

cd /usr/local/hadoop/libsudo wget https://jcenter.bintray.com/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar

Agora você pode verificar a versão do Hadoop usando o seguinte comando:

hadoop version

Você deve obter a seguinte saída:

Hadoop 3.2.1
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r b3cbbb467e22ea829b3808f4b7b01d07e0bf3842
Compiled by rohithsharmaks on 2019-09-10T15:56Z
Compiled with protoc 2.5.0
From source with checksum 776eaf9eee9c0ffc370bcbc1888737
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.2.1.jar

Configurar o arquivo core-site.xml

Em seguida, você precisará especificar o URL para seu NameNode. Você pode fazer isso editando o arquivo core-site.xml:

sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml

Adicione as seguintes linhas:

<configuração>
   <property>
      <name> fs.default.name </name>
      <value> hdfs: //0.0.0.0: 9000 </value>
      <description> O URI do sistema de arquivos padrão </description>
   </property>

</configuration>

Salve e feche o arquivo quando terminar:

Configurar o arquivo hdfs-site.xml

Em seguida, você precisará definir o local para armazenar metadados do nó, arquivo fsimage e editar arquivo de log. Você pode fazer isso editando o arquivo hdfs-site.xml. Primeiro, crie um diretório para armazenar metadados do nó:

sudo mkdir -p /home/hadoop/hdfs/{namenode,datanode}sudo chown -R hadoop:hadoop /home/hadoop/hdfs

Em seguida, edite o arquivo hdfs-site.xml e defina a localização do diretório:

sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Adicione as seguintes linhas:

<configuração>
   <property>
      <name> dfs.replication </name>
      <value> 1 </value>
   </property>

   <property>
      <name> dfs.name.dir </name>
      <value> file:///home/hadoop/hdfs/namenode </value>
   </property>

   <property>
      <name> dfs.data.dir </name>
      <value> file:///home/hadoop/hdfs/datanode </value>
   </property>
</configuration>

Salve e feche o arquivo.

Configurar o arquivo mapred-site.xml

Em seguida, você precisará definir os valores de MapReduce. Você pode defini-lo editando o arquivo mapred-site.xml:

sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

Adicione as seguintes linhas:

<configuração>
   <property>
      <name> mapreduce.framework.name </name>
      <value> fio </value>
   </property>
</configuration>

Salve e feche o arquivo.

Configurar o arquivo yarn-site.xml

Em seguida, você precisará editar o arquivo yarn-site.xml e definir as configurações relacionadas ao YARN:

sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml

Adicione as seguintes linhas:

<configuração>
   <property>
      <name> yarn.nodemanager.aux-services </name>
      <value> mapreduce_shuffle </value>
   </property>
</configuration>

Salve e feche o arquivo quando terminar.

Formatar o HDFS NameNode

Em seguida, você precisará validar a configuração do Hadoop e formatar o HDFS NameNode.

Primeiro, faça login com o usuário Hadoop e formate o HDFS NameNode com o seguinte comando:

su - hadoophdfs namenode -format

Você deve obter a seguinte saída:

2020-06-07 11:35:57,691 INFO util.GSet: VM type       = 64-bit
2020-06-07 11:35:57,692 INFO util.GSet: 0.25% max memory 1.9 GB = 5.0 MB
2020-06-07 11:35:57,692 INFO util.GSet: capacity      = 2^19 = 524288 entries
2020-06-07 11:35:57,706 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
2020-06-07 11:35:57,706 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
2020-06-07 11:35:57,706 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
2020-06-07 11:35:57,710 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
2020-06-07 11:35:57,710 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
2020-06-07 11:35:57,712 INFO util.GSet: Computing capacity for map NameNodeRetryCache
2020-06-07 11:35:57,712 INFO util.GSet: VM type       = 64-bit
2020-06-07 11:35:57,712 INFO util.GSet: 0.029999999329447746% max memory 1.9 GB = 611.9 KB
2020-06-07 11:35:57,712 INFO util.GSet: capacity      = 2^16 = 65536 entries
2020-06-07 11:35:57,743 INFO namenode.FSImage: Allocated new BlockPoolId: BP-1242120599-69.87.216.36-1591529757733
2020-06-07 11:35:57,763 INFO common.Storage: Storage directory /home/hadoop/hdfs/namenode has been successfully formatted.
2020-06-07 11:35:57,817 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 using no compression
2020-06-07 11:35:57,972 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 of size 398 bytes saved in 0 seconds .
2020-06-07 11:35:57,987 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2020-06-07 11:35:58,000 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
2020-06-07 11:35:58,003 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu2004/69.87.216.36
************************************************************/

Inicie o cluster Hadoop

Primeiro, inicie o NameNode e o DataNode com o seguinte comando:

start-dfs.sh

Você deve obter a seguinte saída:

Starting namenodes on [0.0.0.0] 
Starting datanodes 
Starting secondary namenodes [ubuntu2004]

Em seguida, inicie o recurso YARN e os nodemanagers executando o seguinte comando:

start-yarn.sh

Você deve obter a seguinte saída:

Starting resourcemanager
Starting nodemanagers

Agora você pode verificá-los com o seguinte comando:

jps

Você deve obter a seguinte saída:

5047 NameNode
5850 Jps
5326 SecondaryNameNode
5151 DataNode

Acesse a interface da Web do Hadoop

Agora você pode acessar o Hadoop NameNode usando a URL http://ip_do_servidor:9870 . Você deverá ver a seguinte tela:

Você também pode acessar os DataNodes individuais usando o URL http://ip_do_servidor:9864 . Você deverá ver a seguinte tela:

Para acessar o YARN Resource Manager, use o URL http:ip_do_servidor:8088. Você deverá ver a seguinte tela:

Conclusão

Parabéns! você instalou com êxito o Hadoop em um único nó. Agora você pode começar a explorar os comandos HDFS básicos e projetar um cluster Hadoop totalmente distribuído. Sinta-se à vontade para me perguntar se tiver alguma dúvida.

Fonte: howtoforge

Print Friendly, PDF & Email

No responses yet

Deixe um comentário