温馨提示×

HDFS在CentOS如何部署

小樊
36
2026-07-09 17:48:50
栏目: 智能运维

下面给你一个**在 CentOS 上部署 HDFS(Hadoop 分布式文件系统)**的完整实操指南,适用于 Hadoop 3.x,适合学习和生产环境入门。


一、环境准备(CentOS)

1. 系统要求

  • CentOS 7 / 8(推荐 7)
  • Java 8 或 Java 11(Hadoop 3.x 推荐 Java 8)
  • 至少 2 台机器(1 台 NameNode + 1 台 DataNode,或伪分布式)

示例:

主机名 角色
master NameNode + DataNode
slave1 DataNode

2. 关闭防火墙 & SELinux

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3. 配置主机名与 hosts

hostnamectl set-hostname master
vi /etc/hosts
192.168.1.10 master
192.168.1.11 slave1

所有节点都要配置


4. 创建 Hadoop 用户(推荐)

useradd hadoop
passwd hadoop

二、安装 Java

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

验证:

java -version

三、安装 Hadoop

1. 下载 Hadoop

su - hadoop
cd /opt
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 hadoop

2. 配置环境变量

vi ~/.bashrc
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

生效:

source ~/.bashrc

四、HDFS 核心配置(重点)

以下配置文件在:

cd $HADOOP_HOME/etc/hadoop

1. hadoop-env.sh

vi hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/opt/hadoop

2. core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master: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>/opt/hadoop/data/namenode</value>
  </property>

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

4. workers(Hadoop 3.x)

vi workers
master
slave1

五、SSH 免密登录(必须)

ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1

测试:

ssh slave1

六、格式化 HDFS(仅一次)

hdfs namenode -format

七、启动 HDFS

start-dfs.sh

查看进程:

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

八、验证 HDFS

1. Web UI

浏览器访问:

http://master:9870

2. HDFS 命令测试

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

九、常见问题

1. NameNode 起不来

  • 检查 hadoop-env.sh 中 Java 路径
  • 检查端口 9000 是否被占用

2. DataNode 未连接

  • hosts 配置错误
  • 防火墙未关闭
  • 多次格式化 NameNode(需清空 data 目录)

十、伪分布式 vs 完全分布式

模式 适用
伪分布式 学习、测试
完全分布式 生产

如果你需要:

  • 伪分布式部署
  • HA(高可用)HDFS
  • CentOS 8 + Hadoop 3.x
  • 生产环境参数优化

可以直接告诉我,我可以给你定制方案。

0