/usr/local/hadoop-3.3.1);$HADOOP_HOME指向Hadoop安装目录,并添加至PATH)。core-site.xml(设置HDFS基础路径)core-site.xml是Hadoop核心配置文件,需配置HDFS默认文件系统URI和临时目录(用于存储NameNode元数据的临时文件)。
路径:$HADOOP_HOME/etc/hadoop/core-site.xml
配置内容:
<configuration>
<!-- 指定NameNode的URI(localhost表示本地模式,集群中替换为NameNode主机名/IP) -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 设置HDFS临时文件存储目录(需替换为实际路径,如/home/ubuntu/hadoop/tmp) -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.3.1/data/tmp</value>
</property>
</configuration>
说明:hadoop.tmp.dir是HDFS临时文件的根目录,后续NameNode和DataNode的存储路径会基于此目录。
hdfs-site.xml(设置NameNode和DataNode存储路径)hdfs-site.xml是HDFS特定配置文件,需配置NameNode元数据存储路径和DataNode数据存储路径。
路径:$HADOOP_HOME/etc/hadoop/hdfs-site.xml
配置内容:
<configuration>
<!-- 设置NameNode元数据存储路径(file://表示本地文件系统,可配置多个路径用逗号分隔,实现冗余) -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop-3.3.1/data/namenode</value>
</property>
<!-- 设置DataNode数据存储路径(可配置多个路径,如/data1,/data2,数据会轮询存储在不同目录) -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop-3.3.1/data/datanode</value>
</property>
<!-- 设置HDFS副本数(集群中需设置为大于1的值,如3) -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
说明:
dfs.namenode.name.dir:存储NameNode的元数据(如fsimage、edit文件),若配置多个路径,元数据会同步到所有路径(冗余备份);dfs.datanode.data.dir:存储DataNode的实际数据块,可配置多个磁盘路径(如/data1,/data2),提升存储容量和读写性能。使用mkdir -p命令创建上述配置的目录,并设置正确的权限(Hadoop进程需对目录有读写权限):
sudo mkdir -p /usr/local/hadoop-3.3.1/data/{tmp,namenode,datanode}
sudo chown -R $USER:$USER /usr/local/hadoop-3.3.1/data # 将目录所有者改为当前用户(避免权限问题)
格式化NameNode会初始化HDFS元数据(创建fsimage、edit文件),注意:格式化会删除原有HDFS数据,仅首次配置或元数据损坏时执行:
hdfs namenode -format
启动HDFS服务,检查NameNode和DataNode进程是否正常运行:
$HADOOP_HOME/sbin/start-dfs.sh # 启动HDFS服务
jps # 查看进程:应存在NameNode、DataNode进程
dfs/name目录(如/usr/local/hadoop-3.3.1/data/tmp/dfs/name),应存在fsimage、edit文件;dfs/data目录(如/usr/local/hadoop-3.3.1/data/tmp/dfs/data),应存在current目录(存储数据块);http://localhost:50070(Hadoop 3.x版本为http://localhost:9870),查看“NameNode”和“DataNode”信息,确认存储路径是否正确。stop-dfs.sh),修改配置文件后重新格式化NameNode(hdfs namenode -format),再启动服务(start-dfs.sh);dfs.datanode.data.dir可配置多个路径(如file:///data1,/data2),数据会轮询存储在不同目录,解决单磁盘空间不足问题;