温馨提示×

linux hdfs该如何配置

小樊
38
2026-10-19 04:17:29
栏目: 智能运维

下面按**“常见场景 + 最小可用配置”**给你一个清晰、可操作的 Linux 上 HDFS 配置指南。假设你已经装好 Java(JDK 8/11) 和 Hadoop。


一、基础环境准备

1. 安装 JDK

java -version

若未安装:

sudo apt install openjdk-11-jdk   # Ubuntu

2. 下载并解压 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 /opt/hadoop

3. 配置环境变量

vim ~/.bashrc

添加:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

生效:

source ~/.bashrc

二、单机 / 伪分布式 HDFS 配置(最常用)

1. 配置 hadoop-env.sh

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

确保:

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

2. 配置 core-site.xml

vim $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

3. 配置 hdfs-site.xml

vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>

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

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

创建目录:

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

4. 配置 SSH 免密登录

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

三、启动 HDFS

1. 格式化 NameNode(仅第一次)

hdfs namenode -format

2. 启动 HDFS

start-dfs.sh

3. 验证

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

Web UI:

http://localhost:9870

四、基本使用测试

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

五、常见问题

1. Permission denied

sudo chown -R $USER:$USER /opt/hadoop

2. 端口被占用

修改 core-site.xml 中的端口(如 9000 → 8020)

3. DataNode 不启动

删除 data 目录重新格式化:

rm -rf /opt/hadoop/data/*
hdfs namenode -format

六、如果你需要的是

  • ✅ 完全分布式(多节点)
  • ✅ HA(高可用)
  • ✅ Kerberos 安全
  • ✅ Docker / K8s 部署

告诉我你的使用场景,我可以给你对应配置示例。

0 踩