Hadoop故障排查Ubuntu上怎么办
导读:Ubuntu上Hadoop故障排查清单 一 快速定位流程 核对基础环境:执行java -version确认已安装JDK;检查环境变量JAVA_HOME、HADOOP_HOME、PATH是否生效(建议写入**~/.bashrc或/etc/p...
Ubuntu上Hadoop故障排查清单
一 快速定位流程
- 核对基础环境:执行java -version确认已安装JDK;检查环境变量JAVA_HOME、HADOOP_HOME、PATH是否生效(建议写入**~/.bashrc或/etc/profile后执行source**使其生效)。
- 查看进程与服务:用jps确认NameNode、DataNode、ResourceManager、NodeManager等是否在预期节点出现。
- 核对关键端口连通:默认fs.defaultFS=9000,用netstat -an | grep 9000确认监听在0.0.0.0:9000而非仅127.0.0.1:9000;用telnet 主机名 9000测试跨节点连通性。
- 检查防火墙与网络:Ubuntu可用sudo ufw allow 9000,9870,8088等放行端口,或临时关闭防火墙验证是否为拦截问题。
- 查阅日志定位:第一时间查看**$HADOOP_HOME/logs下对应进程的.log与.out**,从异常栈与报错关键词入手。
二 常见故障与修复要点
- Java与命令未找到:报错如JAVA_HOME is not set或“hadoop: 未找到命令”。在hadoop-env.sh中显式设置JAVA_HOME,并将**$HADOOP_HOME/bin:$HADOOP_HOME/sbin加入PATH**并source。
- 端口与连通性:
- DataNode连不上NameNode:检查core-site.xml的fs.defaultFS是否指向主节点IP/域名;用telnet验证端口;排查iptables/ufw与**/etc/hosts错误绑定(如把主机名错误绑定到127.0.0.1**)。
- 监听地址错误:若netstat仅见127.0.0.1:9000,修正**/etc/hosts使主机名绑定到内网IP,确保监听0.0.0.0:9000**。
- 配置与URI格式:在hdfs-site.xml中,dfs.namenode.name.dir、dfs.datanode.data.dir等路径需写成URI形式(如file:/usr/hadoop/name),避免相对或缺失**file:**前缀导致启动异常。
- 首次部署或数据目录异常:执行hdfs namenode -format初始化;若更换过数据目录或出现异常,清理dfs/name、dfs/data、tmp后再格式化。
- 安全模式:NameNode处于SafeMode时业务写入会失败,执行hdfs dfsadmin -safemode leave退出。
- 版本差异与端口变更:Hadoop 3.x的NameNode Web UI默认端口为9870(2.x为50070);HDFS命令在3.x中推荐使用hdfs dfs -mkdir -p等新语法。
三 配置与网络关键点
- 主机名规范:主机名避免包含下划线“_”或点号“.”,否则可能出现如Invalid host:port authority等解析异常;必要时将主机名改为中划线分隔(如node-01)。
- 监听与绑定:确保**/etc/hosts将主机名正确映射到内网IP**,而非127.0.0.1;用netstat确认服务监听在0.0.0.0:端口。
- 防火墙放行:Ubuntu使用ufw放行必要端口(如9000、9870、8088),或测试阶段临时关闭防火墙验证问题所在。
- 远程执行与SSH:多机启动时若pdsh报错“Connection refused”,可设置PDSH_RCMD_TYPE=ssh以使用SSH;同时确保SSH免密配置正确。
四 日志与命令速查
- 日志路径与查看:到**$HADOOP_HOME/logs查看namenode.log、datanode.log、resourcemanager.log、nodemanager.log等,优先从ERROR/Exception**行定位根因。
- 常用命令清单:
- 进程检查:jps
- 端口连通:netstat -an | grep 9000、telnet 主机名 9000
- 安全模式:hdfs dfsadmin -safemode leave
- 目录操作(3.x):hdfs dfs -mkdir -p /user/用户名
- 首次格式化:hdfs namenode -format
- 环境变量生效:source ~/.bashrc 或 source /etc/profile
- 防火墙放行(Ubuntu):sudo ufw allow 9000,9870,8088
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Hadoop故障排查Ubuntu上怎么办
本文地址: https://pptw.com/jishu/762357.html
