Configuração do Padrão Pseudo-Distribuído
Na maioria dos casos, o Hadoop é usado em um ambiente em cluster, ou seja, precisamos implantar o Hadoop em vários nós. Ao mesmo tempo, o Hadoop também pode ser executado em um único nó no padrão pseudo-distribuído, simulando cenários de vários nós por meio de vários processos Java independentes. Na fase inicial de aprendizado, não há necessidade de gastar muitos recursos para criar nós diferentes. Portanto, esta seção e os capítulos subsequentes usarão principalmente o padrão pseudo-distribuído para a implantação do "cluster" Hadoop.
Criar Diretórios
Para começar, crie os diretórios namenode e datanode dentro do diretório home do usuário Hadoop. Execute o comando abaixo para criar esses diretórios:
rm -rf ~/hadoopdata
mkdir -p ~/hadoopdata/hdfs/{namenode,datanode}
Em seguida, você precisa modificar os arquivos de configuração do Hadoop para fazê-lo rodar no padrão pseudo-distribuído.
Editar core-site.xml
Abra o arquivo core-site.xml com um editor de texto no terminal:
vim /home/hadoop/hadoop/etc/hadoop/core-site.xml
No arquivo de configuração, modifique o valor da tag configuration para o seguinte conteúdo:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
O item de configuração fs.defaultFS é usado para indicar a localização do sistema de arquivos que o cluster usa por padrão:
Salve o arquivo e saia do vim após a edição.
Editar hdfs-site.xml
Abra outro arquivo de configuração hdfs-site.xml:
vim /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml
No arquivo de configuração, modifique o valor da tag configuration para o seguinte:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
</configuration>
Este item de configuração é usado para indicar o número de cópias de arquivos no HDFS, que é 3 por padrão. Como o implantamos de forma pseudo-distribuída em um único nó, ele é modificado para 1:
Salve o arquivo e saia do vim após a edição.
Editar hadoop-env.sh
Em seguida, edite o arquivo hadoop-env.sh:
vim /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh
Altere o valor de JAVA_HOME para a localização real do JDK instalado, ou seja, /usr/lib/jvm/java-11-openjdk-amd64.
Observação: Você pode usar o comando echo $JAVA_HOME para verificar a localização real do JDK instalado.
Salve o arquivo e saia do editor vim após a edição.
Editar yarn-site.xml
Em seguida, edite o arquivo yarn-site.xml:
vim /home/hadoop/hadoop/etc/hadoop/yarn-site.xml
Adicione o seguinte à tag configuration:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
Salve o arquivo e saia do editor vim após a edição.
Editar mapred-site.xml
Finalmente, você precisa editar o arquivo mapred-site.xml.
Abra o arquivo com o editor vim:
vim /home/hadoop/hadoop/etc/hadoop/mapred-site.xml
Da mesma forma, adicione o seguinte à tag configuration:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/home/hadoop/hadoop</value>
</property>
</configuration>
Salve o arquivo e saia do editor vim após a edição.