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
No responses yet