温馨提示×

如何配置Linux HDFS环境

小樊
46
2026-08-13 14:28:52
栏目: 智能运维

下面给出在 Linux 上配置 HDFS(Hadoop 分布式文件系统)的典型完整流程,适用于单机伪分布式完全分布式两种常见场景。内容基于 Hadoop 3.x(2.x 也基本一致)。


一、环境准备

1. 操作系统

  • Linux(CentOS 7/8、Rocky、Ubuntu 等均可)
  • 关闭防火墙(或放行端口)
# CentOS
systemctl stop firewalld
systemctl disable firewalld

2. 安装 Java

Hadoop 依赖 JDK(推荐 JDK 8 或 11)

java -version

如未安装:

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

设置环境变量:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

二、创建 Hadoop 用户(推荐)

useradd hadoop
passwd hadoop
su - hadoop

三、下载并安装 Hadoop

1. 下载 Hadoop

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 /usr/local/hadoop

2. 配置环境变量

编辑 ~/.bashrc/etc/profile

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

生效:

source ~/.bashrc

四、配置 SSH 免密登录(必须)

Hadoop 依赖 SSH 启动进程。

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

测试:

ssh localhost

五、HDFS 核心配置文件

所有配置文件位于:

$HADOOP_HOME/etc/hadoop

1. hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

2. core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

若是完全分布式,将 localhost 改为 NameNode 主机名


3. hdfs-site.xml

伪分布式示例:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data/hadoop/namenode</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/datanode</value>
    </property>
</configuration>

创建目录:

mkdir -p /data/hadoop/namenode
mkdir -p /data/hadoop/datanode

4. workers(旧版本为 slaves)

localhost

完全分布式时填写 DataNode 主机名


六、格式化 HDFS(仅第一次)

⚠️ 只在第一次部署时执行

hdfs namenode -format

成功标志:

Storage directory ... has been successfully formatted

七、启动 HDFS

start-dfs.sh

检查进程:

jps

应包含:

  • NameNode
  • DataNode
  • SecondaryNameNode

八、验证 HDFS

1. 查看 Web UI

  • NameNode UI:
http://localhost:9870

2. 测试 HDFS 命令

hdfs dfs -mkdir /test
hdfs dfs -put test.txt /test
hdfs dfs -ls /test

九、完全分布式模式(简要说明)

多台机器 时:

  1. 所有节点:
    • 安装相同 Hadoop
    • 配置相同 core-site.xml
    • 配置相同 hdfs-site.xml
  2. NameNode 节点:
    • dfs.namenode.name.dir
  3. DataNode 节点:
    • dfs.datanode.data.dir
  4. workers 文件中填写所有 DataNode 主机名
  5. 所有节点互相 SSH 免密
  6. 只在 NameNode 上执行:
hdfs namenode -format
start-dfs.sh

十、常见问题

1. NameNode 无法启动

  • 检查 JAVA_HOME
  • 检查端口是否被占用
  • 查看 logs:
$HADOOP_HOME/logs

2. DataNode 未出现

  • dfs.datanode.data.dir 权限不足
  • 多次格式化导致 clusterID 不一致

如果你需要:

  • CentOS / Ubuntu 专用详细步骤
  • Hadoop HA(高可用)配置
  • HDFS + YARN 完整集群
  • Docker / 云服务器部署

可以直接告诉我你的 Linux 版本和使用场景

0