Hadoop在Ubuntu上的故障排查技巧
使用jps
命令查看Ubuntu系统中Hadoop相关Java进程(如NameNode、DataNode、ResourceManager、NodeManager等)是否正常运行。若进程缺失,说明对应组件未启动,需进一步排查启动失败原因(如配置错误、权限问题)。
Hadoop的日志文件位于$HADOOP_HOME/logs
目录下(如hadoop-<username>-namenode-<hostname>.log
、hadoop-<username>-datanode-<hostname>.log
),包含详细的错误堆栈信息。使用tail -f
实时查看日志或grep
搜索特定错误关键词(如“ERROR”“FAILED”),是定位问题的核心手段。
重点检查以下配置文件的格式和参数:
core-site.xml
:确认fs.defaultFS
(HDFS地址,如hdfs://localhost:9000
)和hadoop.tmp.dir
(临时目录,如file:/usr/local/hadoop/tmp
)配置正确;hdfs-site.xml
:检查dfs.replication
(副本数,伪分布式设为1)、dfs.namenode.name.dir
(NameNode元数据目录)、dfs.datanode.data.dir
(DataNode数据目录)是否设置合理;yarn-site.xml
:确保yarn.resourcemanager.hostname
(ResourceManager主机名)和yarn.nodemanager.aux-services
(Shuffle服务)配置无误;mapred-site.xml
:确认mapreduce.framework.name
(框架名称,设为“yarn”)。ping
命令测试集群节点间的网络连通性(如ping <node_ip>
);/etc/hosts
文件,确保主机名与IP地址映射正确(如127.0.0.1 localhost
、<node_ip> <node_hostname>
);sudo ufw allow 9000/tcp
(NameNode)、sudo ufw allow 50070/tcp
(HDFS Web UI)、sudo ufw allow 8032/tcp
(YARN ResourceManager))。~/.bashrc
或~/.profile
文件,添加以下环境变量:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 根据实际Java安装路径调整 export HADOOP_HOME=/usr/local/hadoop # 根据实际Hadoop安装路径调整 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
使配置生效,并通过java -version
、hadoop version
验证Java和Hadoop命令是否可用。chown -R <username>:$HADOOP_HOME
命令将Hadoop目录所有权赋予当前用户(如hadoop
),避免权限不足导致启动失败;stop-dfs.sh
),删除$HADOOP_HOME/tmp
目录(sudo rm -rf $HADOOP_HOME/tmp
),然后重新格式化NameNode(hdfs namenode -format
)并启动服务。若集群为多节点,需配置SSH免密登录:
ssh-keygen -t rsa
);authorized_keys
文件中(ssh-copy-id <node_hostname>
);ssh <node_hostname>
),确保节点间可无密码通信。使用top
、htop
、vmstat
等命令实时监控Ubuntu系统的CPU、内存、磁盘I/O使用情况。若资源占用过高(如CPU使用率超过80%、内存耗尽),可能导致Hadoop进程崩溃,需优化配置(如增加节点、调整yarn.nodemanager.resource.memory-mb
参数)或扩容硬件。
部署Ganglia、Prometheus+Grafana等监控工具,实时展示Hadoop集群的状态(如节点存活、HDFS存储容量、YARN任务队列、MapReduce作业进度),便于快速发现性能瓶颈或异常节点。