温馨提示×

centos怎样启动hdfs集群

小樊
48
2026-09-09 10:43:52
栏目: 智能运维

在 CentOS 上启动 HDFS 集群,通常是在已经安装并配置好 Hadoop 的前提下进行的。下面按常规步骤说明(以 Hadoop 3.x 为例,Hadoop 2.x 类似)。


一、启动前准备

1. 配置好 Hadoop 环境

确保以下文件已正确配置(以 $HADOOP_HOME 为例):

  • etc/hadoop/core-site.xml
  • etc/hadoop/hdfs-site.xml
  • etc/hadoop/workers(或 slaves)
  • etc/hadoop/hadoop-env.sh

示例:

<!-- core-site.xml -->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://namenode:9000</value>
</property>
<!-- hdfs-site.xml -->
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>

2. 设置环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3. 关闭防火墙(测试环境)

systemctl stop firewalld
systemctl disable firewalld

二、第一次启动(格式化 NameNode)

⚠️ 只做一次,且只能在 NameNode 上执行

hdfs namenode -format

三、启动 HDFS 集群

方式一:使用官方脚本(推荐)

在 NameNode 节点执行:

start-dfs.sh

该命令会:

  • 启动 NameNode
  • 启动 SecondaryNameNode(如果在配置中)
  • 启动所有 DataNode(通过 workers 文件)

方式二:分开启动(更清晰)

# 启动 NameNode
hdfs --daemon start namenode

# 启动 DataNode
hdfs --daemon start datanode

# 启动 SecondaryNameNode(如有)
hdfs --daemon start secondarynamenode

在 所有 DataNode 节点 上执行:

hdfs --daemon start datanode

四、验证 HDFS 是否启动成功

1. 查看进程

jps

应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode(可选)

2. Web UI 查看

  • NameNode UI:
http://namenode:9870

(Hadoop 3.x,2.x 是 50070)


3. 执行 HDFS 命令测试

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

五、停止 HDFS 集群

stop-dfs.sh

或:

hdfs --daemon stop namenode
hdfs --daemon stop datanode

六、常见问题

1. 权限问题

使用非 root 用户启动 Hadoop:

chown -R hadoop:hadoop /opt/hadoop

2. SSH 免密未配置

start-dfs.sh 依赖 SSH:

ssh-keygen
ssh-copy-id datanode1
ssh-copy-id datanode2

3. 端口被占用

检查:

netstat -tunlp | grep 9000

如果你愿意,可以告诉我:

  • Hadoop 版本(2.x / 3.x)
  • 是否使用 root 用户
  • 单节点还是多节点

我可以给你更精确的启动命令。

0 踩