一.集群实例创建
以三个 Hadoop 实例创建集群,可以用虚拟机,或者Docker容器来实现。本教程直接使用虚拟机演示
集群架构可参考下图:客户端、命名节点和数据节点

查看 Hadoop 配置文件目录:ll $HADOOP_HOME/etc/hadoop

Hadoop 基本概念与含义
名称 |
含义 |
HDFS |
Hadoop Distributed File System,Hadoop 分布式文件系统的简称 |
NameNode |
指挥其它节点存储的节点,用于映射文件在集群存储的位置 |
Secondary NameNode |
副命名节点,用于备份命名节点数据,并协助命名节点进行管理工作;命名节点崩溃后可以用来恢复其数据,可以有多个 |
DataNode |
用来储存数据块的节点,HDFS基础存储单位,受命名节点协调管理 |
core-site.xml |
Hadoop 核心配置 |
hdfs-site.xml |
HDFS 配置项 |
mapred-site.xml |
MapReduce 配置项,映射和规约,对大型任务分治处理 |
yarn-site.xml |
YARN 配置项 |
workers |
记录所有的数据节点的主机名或 IP 地址 |
二.配置
1.创建三个虚拟机(Anolis)
虚拟机名称 |
地址 |
Host Name |
hadoop_1 |
192.168.1.6 |
nn |
hadoop_2 |
192.168.1.7 |
nd1 |
hadoop_3 |
192.168.1.8 |
nd2 |

1.修改 HostName
hostnamectl set-hostname nn
echo "192.168.1.7 nd1" >> /etc/hosts
echo "192.168.1.8 nd2" >> /etc/hosts
hostnamectl set-hostname nd1
echo "192.168.1.6 nn" >> /etc/hosts
echo "192.168.1.8 nd2" >> /etc/hosts
hostnamectl set-hostname nd2
echo "192.168.1.6 nn" >> /etc/hosts
echo "192.168.1.7 nd1" >> /etc/hosts
以 192.168.1.6 为例

2.配置免密登录,配置前
ssh root@nd1

ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@nd1
ssh-copy-id -i ~/.ssh/id_rsa root@nd2
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@nn
ssh-copy-id -i ~/.ssh/id_rsa root@nd2
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@nn
ssh-copy-id -i ~/.ssh/id_rsa root@nd1
ssh-copy-id -i ~/.ssh/id_rsa root@localhost
以 192.168.1.6为例,免密访问 nd1

2.配置命名节点
1.在 nd1 / nd2 部署 hadoop
mkdir -p /usr/local/java
mkdir -p /usr/local/hadoop
tar zxvf jdk-11.0.19_linux-x64_bin.tar.gz -C /usr/local/java/
tar zxvf hadoop-3.3.6.tar.gz -C /usr/local/hadoop/
echo 'export JAVA_HOME=/usr/local/java/jdk-11.0.19' >> /etc/profile
echo 'export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo 'export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.6' >> /etc/profile
echo 'export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin' >> /etc/profile
source /etc/profile
2.配置
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://nn:9000<