温馨提示×

centos如何部署hdfs集群

小樊
44
2026-10-09 08:25:16
栏目: 智能运维

下面给你一个**在 CentOS 上部署 HDFS 集群(伪分布式 / 完全分布式)**的清晰步骤说明,适合入门和实际操作。


一、环境准备

1. 服务器规划(示例)

角色 主机名 IP
NameNode nn1 192.168.1.10
DataNode dn1 192.168.1.11
DataNode dn2 192.168.1.12

如果是单机伪分布式,一台机器即可。


2. 基础环境(所有节点)

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

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

# 配置 hosts
cat >> /etc/hosts <<EOF
192.168.1.10 nn1
192.168.1.11 dn1
192.168.1.12 dn2
EOF

3. 安装 JDK

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

配置环境变量:

echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

4. 创建用户(推荐)

useradd hadoop
passwd hadoop

二、下载并安装 Hadoop

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt
ln -s /opt/hadoop-3.3.6 /opt/hadoop
chown -R hadoop:hadoop /opt/hadoop

三、配置 HDFS(核心)

切换到 hadoop 用户:

su - hadoop
cd /opt/hadoop/etc/hadoop

1. hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop

2. core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://nn1:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>
</configuration>

3. hdfs-site.xml

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

4. workers(旧版 slaves)

nn1
dn1
dn2

四、SSH 免密登录(非常重要)

ssh-keygen -t rsa
ssh-copy-id nn1
ssh-copy-id dn1
ssh-copy-id dn2

五、格式化并启动 HDFS

1. 格式化 NameNode(仅一次)

hdfs namenode -format

2. 启动集群

start-dfs.sh

3. 验证

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

Web UI:

http://nn1:9870

六、基本测试

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

七、常见问题

  • 权限问题:确保目录属主是 hadoop
  • 端口不通:检查防火墙和 hosts
  • NameNode 起不来:检查是否重复 format

如果你需要:

  • ✅ CentOS 7 / 8 专用版本
  • ✅ HA(高可用)部署
  • ✅ Docker / K8s 部署
  • ✅ YARN + MapReduce

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

0 踩