温馨提示×

如何启动linux hdfs

小樊
34
2026-07-29 08:41:14
栏目: 智能运维

在 Linux 上启动 HDFS(Hadoop Distributed File System),通常是指在 Hadoop 集群环境中启动 NameNode、DataNode 等服务。下面按最常见场景给你一个完整、可操作的说明。


一、前提条件(必须确认)

1️⃣ 已安装 Hadoop

确认 Hadoop 已安装并配置好环境变量:

echo $HADOOP_HOME
hadoop version

如未配置:

export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

2️⃣ 已配置 SSH 免密登录(集群必须)

ssh localhost

如果不能免密:

ssh-keygen -t rsa
ssh-copy-id localhost

3️⃣ 配置文件已就绪

关键配置文件在:

$HADOOP_HOME/etc/hadoop/

至少确认:

  • core-site.xml
  • hdfs-site.xml

示例(单机伪分布式):

core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

二、第一次启动 HDFS(必须格式化)

⚠️ 只在第一次执行,不要重复执行

hdfs namenode -format

成功标志:

Storage directory ... has been successfully formatted

三、启动 HDFS(常用方式)

✅ 方式一:使用 start-dfs.sh(最常用)

start-dfs.sh

启动的服务包括:

  • NameNode
  • DataNode
  • SecondaryNameNode(如有配置)

✅ 方式二:分别启动(适合排查问题)

# 启动 NameNode
hadoop-daemon.sh start namenode

# 启动 DataNode
hadoop-daemon.sh start datanode

四、验证 HDFS 是否启动成功

1️⃣ 查看进程

jps

应看到:

NameNode
DataNode
SecondaryNameNode

2️⃣ 访问 Web UI

  • NameNode UI:
    http://localhost:9870
    

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


3️⃣ 执行 HDFS 命令测试

hdfs dfs -ls /

创建目录测试:

hdfs dfs -mkdir /test
hdfs dfs -ls /

五、停止 HDFS

stop-dfs.sh

或:

hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode

六、常见问题排查

❌ 1. NameNode 启动失败

查看日志:

$HADOOP_HOME/logs/hadoop-*-namenode-*.log

常见原因:

  • 未格式化
  • 端口被占用
  • 目录权限不足

❌ 2. DataNode 没有启动

cat $HADOOP_HOME/logs/hadoop-*-datanode-*.log

常见原因:

  • 多次格式化 NameNode(clusterID 不一致)
  • 磁盘空间不足

❌ 3. 权限问题

sudo chown -R hadoop:hadoop $HADOOP_HOME

七、总结(快速命令)

# 格式化(仅一次)
hdfs namenode -format

# 启动 HDFS
start-dfs.sh

# 验证
jps
hdfs dfs -ls /

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

  • Hadoop 版本(2.x / 3.x)
  • 单机 / 伪分布式 / 完全分布式
  • 具体报错信息

我可以按你的环境给你精确步骤或排错方案

0