温馨提示×

Linux HDFS配置怎样完成

小樊
41
2026-07-14 14:45:02
栏目: 智能运维

在 Linux 上完成 HDFS(Hadoop Distributed File System)配置,通常分为 单机伪分布式完全分布式 两种场景。下面以 Hadoop 3.x(如 3.3.x) 为例,说明最常见的 伪分布式配置流程(适合学习和开发),并简要说明完全分布式的区别。


一、环境准备

1. 安装 Java(必须)

Hadoop 依赖 JDK。

java -version

推荐:

  • JDK 8 或 JDK 11(Hadoop 3.x 支持)

如果没有安装:

sudo yum install java-1.8.0-openjdk-devel   # CentOS
sudo apt install openjdk-8-jdk              # Ubuntu

设置 JAVA_HOME:

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

建议写入:

~/.bashrc

2. 创建 Hadoop 用户(可选)

sudo useradd hadoop
sudo 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. 配置环境变量

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

三、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>

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>

4. 配置 SSH 免密登录(必须)

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

测试:

ssh localhost

四、启动 HDFS

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

hdfs namenode -format

2. 启动 HDFS

start-dfs.sh

查看进程:

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

3. 访问 Web UI

浏览器访问:

http://localhost:9870

五、测试 HDFS

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

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

与伪分布式不同点:

  1. 多台机器
  2. 配置:
    • core-site.xml:NameNode 主机名
    • hdfs-site.xml:副本数 ≥ 3
  3. 配置 workers(Hadoop 3):
node1
node2
node3
  1. 所有节点:
    • 相同 Hadoop 版本
    • 相同配置
    • 免密 SSH(NameNode → DataNode)

七、常见问题

1. NameNode 起不来

  • 检查 JAVA_HOME
  • 查看日志:
$HADOOP_LOG_DIR/hadoop-*-namenode-*.log

2. 端口被占用

netstat -tunlp | grep 9000

3. 权限问题

chown -R hadoop:hadoop /usr/local/hadoop

八、配置总结

文件 作用
hadoop-env.sh Java 环境
core-site.xml 默认文件系统
hdfs-site.xml HDFS 参数
workers DataNode 列表

如果你需要:

  • Hadoop 2.x 配置
  • 生产环境参数优化
  • HA(高可用)HDFS
  • 与 YARN / Spark 集成

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

0