温馨提示×

linux hdfs配置怎样才正确

小樊
58
2026-09-19 20:15:59
栏目: 智能运维

下面从 安装前准备 → 核心配置文件 → 常见正确做法 → 排错思路 给你一个“能跑起来且不容易踩坑”的 Linux HDFS 配置说明(以 Hadoop 3.x 为例,单机/伪分布式为主,附带完全分布式要点)。


一、前提条件(很重要)

  1. Linux 系统
    • CentOS / Ubuntu / Rocky 均可
  2. Java 已安装
    java -version
    
    推荐 JDK 8 或 JDK 11(Hadoop 3.x 支持)
  3. SSH 免密登录(必配)
    ssh-keygen -t rsa
    ssh-copy-id localhost
    
  4. 关闭防火墙或放行端口
    systemctl stop firewalld
    systemctl disable firewalld
    

二、关键环境变量(~/.bashrc 或 /etc/profile)

export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

生效:

source ~/.bashrc

三、HDFS 核心配置文件(重点)

1️⃣ hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_xxx

2️⃣ core-site.xml(最基础)

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

  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>
</configuration>

✅ 常见错误:

  • hadoop.tmp.dir 没配 → 重启后数据全丢
  • 端口冲突(如 9000 被占用)

3️⃣ hdfs-site.xml(HDFS 核心)

伪分布式示例:

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

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

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

✅ 要点:

  • dfs.replication=1(单机)
  • name / data 目录必须存在且有权限

4️⃣ workers(老版本是 slaves)

localhost

完全分布式时写 DataNode 主机名


四、初始化 & 启动(顺序不能错)

1️⃣ 格式化 NameNode(只做一次!)

hdfs namenode -format

⚠️ 重复格式化会导致 DataNode 无法启动


2️⃣ 启动 HDFS

start-dfs.sh

3️⃣ 验证

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

Web UI:

http://localhost:9870

五、常见“配置不正确”的原因

问题 原因
DataNode 起不来 clusterID 不一致
NameNode 起不来 端口被占用
权限错误 用 root 跑 Hadoop
无法访问 Web 防火墙没关
文件写不进 replication > 节点数

✅ 建议:

  • 不要用 root 启动 Hadoop
  • 新建用户:
useradd hadoop
chown -R hadoop:hadoop /opt/hadoop

六、完全分布式最小要点

  • 多台机器
  • core-site.xml 写真实 IP / 主机名
  • workers 写 DataNode
  • 所有节点:
    • 相同 Hadoop 版本
    • 相同配置
    • 互相 SSH 免密

七、最小“正确配置”总结

✅ Java 对
✅ SSH 通
✅ 目录权限对
✅ 只格式化一次
✅ replication 合理
✅ 端口不冲突


如果你愿意,可以告诉我:

  • Hadoop 版本
  • 单机 / 伪分布 / 集群
  • 具体报错信息

我可以帮你逐行检查你的配置文件。

0 踩