温馨提示×

Linux HDFS配置怎么做

小樊
38
2026-08-25 01:56:36
栏目: 智能运维

下面给你一个Linux 下 HDFS(Hadoop Distributed File System)配置的完整流程,适合单机伪分布式完全分布式两种常见场景。内容以 Hadoop 3.x 为例(2.x 差别不大)。


一、前置准备

1. 系统要求

  • Linux(CentOS / Rocky / Ubuntu / Debian 均可)
  • Java 8 或 Java 11
  • SSH(必须能免密登录)

2. 安装 Java

java -version

如果没有:

# CentOS / Rocky
yum install -y java-1.8.0-openjdk-devel

# Ubuntu
apt install -y openjdk-8-jdk

配置 JAVA_HOME

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

3. 创建 Hadoop 用户(推荐)

useradd hadoop
passwd hadoop
su - hadoop

4. 配置 SSH 免密登录(非常重要)

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

测试:

ssh localhost

二、安装 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

三、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(Hadoop 3.x)

$HADOOP_HOME/etc/hadoop/workers

内容:

localhost

完全分布式时写 DataNode 主机名


四、格式化 HDFS(只做一次)

⚠️ 格式化会清空 HDFS 数据

hdfs namenode -format

成功标志:

Storage directory ... has been successfully formatted

五、启动 HDFS

start-dfs.sh

检查进程:

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

六、验证 HDFS

1. Web UI

浏览器访问:

http://<服务器IP>:9870

2. 命令行测试

hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test
hdfs dfs -ls /test

七、完全分布式 HDFS(简要)

  1. 多台机器
  2. core-site.xml
fs.defaultFS = hdfs://namenode:9000
  1. hdfs-site.xml
dfs.replication = 3
  1. workers 写所有 DataNode
  2. 所有节点:
    • 相同 Hadoop 版本
    • 相同配置
    • 互相 SSH 免密

八、常见问题

1. NameNode 起不来

  • 检查 JAVA_HOME
  • 检查端口占用(9000 / 9870)
  • 查看日志:
$HADOOP_HOME/logs/

2. DataNode 启动后又消失

  • 多次格式化 NameNode
  • 删除 DataNode 存储目录重新启动

3. 权限问题

chown -R hadoop:hadoop /data/hadoop

九、总结流程

安装 Java
→ 配置 SSH
→ 安装 Hadoop
→ 配置 core-site.xml / hdfs-site.xml
→ 格式化 NameNode
→ 启动 HDFS
→ 验证

如果你愿意,我可以:

  • ✅ 帮你写 完全分布式 HDFS 架构图
  • ✅ 给你 生产环境参数优化建议
  • ✅ 帮你排查 启动报错日志

直接把你的 Linux 版本 + Hadoop 版本 + 报错信息发我即可。

0