温馨提示×

HDFS在Ubuntu上的数据存储路径怎么设置

小樊
45
2025-11-09 06:20:08
栏目: 云计算

HDFS在Ubuntu上的数据存储路径设置步骤

1. 准备工作

  • 确保Ubuntu系统已安装Java JDK 8+(Hadoop依赖Java环境);
  • 已完成Hadoop安装(解压至指定目录,如/usr/local/hadoop-3.3.1);
  • 配置好Hadoop环境变量($HADOOP_HOME指向Hadoop安装目录,并添加至PATH)。

2. 修改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的存储路径会基于此目录。

3. 修改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的元数据(如fsimageedit文件),若配置多个路径,元数据会同步到所有路径(冗余备份);
  • dfs.datanode.data.dir:存储DataNode的实际数据块,可配置多个磁盘路径(如/data1,/data2),提升存储容量和读写性能。

4. 创建存储目录

使用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  # 将目录所有者改为当前用户(避免权限问题)

5. 格式化NameNode(首次配置需执行)

格式化NameNode会初始化HDFS元数据(创建fsimageedit文件),注意:格式化会删除原有HDFS数据,仅首次配置或元数据损坏时执行

hdfs namenode -format

6. 启动HDFS服务并验证

启动HDFS服务,检查NameNode和DataNode进程是否正常运行:

$HADOOP_HOME/sbin/start-dfs.sh  # 启动HDFS服务
jps  # 查看进程:应存在NameNode、DataNode进程

7. 验证存储路径

  • 查看NameNode元数据路径:进入dfs/name目录(如/usr/local/hadoop-3.3.1/data/tmp/dfs/name),应存在fsimageedit文件;
  • 查看DataNode数据路径:进入dfs/data目录(如/usr/local/hadoop-3.3.1/data/tmp/dfs/data),应存在current目录(存储数据块);
  • Web界面验证:访问http://localhost:50070(Hadoop 3.x版本为http://localhost:9870),查看“NameNode”和“DataNode”信息,确认存储路径是否正确。

注意事项

  • 若需修改已有集群的存储路径,需先停止HDFS服务(stop-dfs.sh),修改配置文件后重新格式化NameNode(hdfs namenode -format),再启动服务(start-dfs.sh);
  • DataNode的dfs.datanode.data.dir可配置多个路径(如file:///data1,/data2),数据会轮询存储在不同目录,解决单磁盘空间不足问题;
  • 确保存储路径所在磁盘有足够空间(建议预留20%以上空间,避免数据写入失败)。

0