温馨提示×

怎么调试debian hadoop

小樊
40
2026-09-08 12:59:28
栏目: 智能运维

调试 Debian 上的 Hadoop,通常可以分成系统/环境层、Hadoop 配置层、运行日志层、应用层几个维度来做。下面给你一套比较实用的排查思路和方法。


一、先确认基础环境(Debian 层面)

1. Java 环境

Hadoop 强依赖 JDK:

java -version
which java

Hadoop 3.x 推荐:

  • JDK 8 或 JDK 11(看 Hadoop 版本)

检查 JAVA_HOME

echo $JAVA_HOME

JAVA_HOME 必须在:

  • ~/.bashrc
  • /etc/profile
  • hadoop-env.sh 中正确设置

2. SSH 免密(尤其是伪分布/集群)

NameNode 启 DataNode 需要 SSH:

ssh localhost

不成功就:

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

3. 主机名与 hosts

hostname
cat /etc/hosts

至少要有:

127.0.0.1   localhost
192.168.1.10 master
192.168.1.11 slave1

Hadoop 配置里不要用 IP,用主机名更稳。


二、Hadoop 配置层调试

1. 核心配置文件

重点看这几个:

  • etc/hadoop/core-site.xml
  • etc/hadoop/hdfs-site.xml
  • etc/hadoop/mapred-site.xml
  • etc/hadoop/yarn-site.xml
  • etc/hadoop/hadoop-env.sh

常见错误:

  • fs.defaultFS 写错
  • dfs.namenode.name.dir 权限不对
  • yarn.resourcemanager.hostname 没配

2. 配置语法检查

hdfs getconf -confKey fs.defaultFS

或:

yarn getconf -confKey yarn.resourcemanager.hostname

三、启动与进程调试

1. 启动方式

start-dfs.sh
start-yarn.sh

或伪分布:

start-all.sh

2. 看进程

jps

正常至少应有:

  • NameNode
  • DataNode
  • ResourceManager
  • NodeManager
  • SecondaryNameNode( optional)

缺哪个,就查哪个日志。


四、日志调试(最关键)

1. 日志位置

$HADOOP_HOME/logs/

常见文件:

  • hadoop-*-namenode-*.log
  • hadoop-*-datanode-*.log
  • yarn-*-resourcemanager-*.log

实时看:

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

2. 常见错误速查

  • NameNode 起不来
    • 没格式化:
      hdfs namenode -format
      
    • 目录权限问题
  • DataNode 不注册
    • clusterID 不一致(重格式化后常见)
  • YARN 任务卡住
    • 看 ResourceManager / NodeManager 日志

五、HDFS 调试命令

hdfs dfsadmin -report
hdfs fsck /
hdfs dfs -ls /

六、调试级别(开 DEBUG)

log4j.properties 中:

log4j.logger.org.apache.hadoop=DEBUG

或直接:

export HADOOP_ROOT_LOGGER=DEBUG,console

七、推荐调试流程(实用)

  1. jps 看缺谁
  2. 看对应日志
  3. 检查配置文件
  4. 检查权限 / SSH / hosts
  5. 必要时重格式化 NameNode(会丢数据

如果你愿意,可以把:

  • Hadoop 版本
  • Debian 版本
  • 报错日志或 jps 输出

贴出来,我可以直接帮你定位具体问题。

0