温馨提示×

linux hdfs配置怎样实现

小樊
51
2026-09-28 16:55:10
栏目: 智能运维

下面按从零到可用的思路,说明在 Linux 上配置 HDFS(Hadoop 分布式文件系统) 的常见做法。以 单节点伪分布式(最常用、最易学)为主,并补充完全分布式要点。


一、环境准备(所有节点)

1. 系统要求

  • Linux(CentOS / Ubuntu 常见)
  • JDK 8 或 11(Hadoop 3.x 推荐 JDK 8)
  • SSH 免密(NameNode → DataNode)

2. 安装 JDK

java -version

若未安装:

# Ubuntu
sudo apt install openjdk-8-jdk

# CentOS
sudo yum install java-1.8.0-openjdk-devel

配置 JAVA_HOME:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

二、创建 Hadoop 用户(推荐)

useradd hadoop
passwd hadoop
su - hadoop

三、下载并安装 Hadoop

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 /usr/local/hadoop

配置环境变量:

vi ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc

四、SSH 免密登录(关键)

ssh-keygen -t rsa
ssh-copy-id localhost

测试:

ssh localhost

五、HDFS 核心配置文件

路径:$HADOOP_HOME/etc/hadoop/

1. hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

2. core-site.xml

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

3. hdfs-site.xml(伪分布式)

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

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

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

创建目录:

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

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

hdfs namenode -format

✅ 成功标志:

Storage directory ... has been successfully formatted

七、启动 HDFS

start-dfs.sh

检查进程:

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

八、验证 HDFS

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

Web 界面:

http://localhost:9870

九、完全分布式(简要点)

1. 多台机器

  • 1 台 NameNode
  • N 台 DataNode

2. 关键配置

core-site.xml

<value>hdfs://namenode:9000</value>

hdfs-site.xml

<property>
  <name>dfs.namenode.rpc-address</name>
  <value>namenode:9000</value>
</property>

workers 文件

datanode1
datanode2

3. 所有节点

  • 相同 Hadoop 版本
  • 相同配置
  • SSH 免密

十、常见问题

问题 原因
NameNode 起不来 没格式化 / 目录权限
DataNode 不显示 clusterID 不一致
端口不通 防火墙未关
systemctl stop firewalld

如果你需要:

  • CentOS / Ubuntu 专属步骤
  • Docker 部署 HDFS
  • 生产级参数调优

可以直接告诉我你的使用场景。

0 踩