当前位置: 首页 > news >正文

解决hadoop常用到的问题

1.namenode无法启动问题

报错1.

ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. 

原因:不能用 root 用户直接启动 Hadoop 的 HDFS 组件(NameNode / DataNode / SecondaryNameNode)
解决方式:
假如你已经创建了一个叫 hadoop 的用户并配置好了环境,执行:
切换用户从新启动

su - hadoop
start-dfs.sh

报错2

sudo: no tty present and no askpass program specified

报错原因:
这个错误说明脚本中调用了 sudo 命令,但当前用户没有交互终端(tty)输入密码,也没有配置免密
解决方法:
给 hadoop 用户配置 sudo 免密
以 root 用户运行:

visudo
##在文件最后添加,然后保存退出
hadoop ALL=(ALL) NOPASSWD: ALL
##再次启动
start-dfs.sh

报错3

namenode is running as process 25061. Stop it first and ensure /tmp/hadoop-hadoop-namenode.pid file is empty before retry.

报错原因:
NameNode 已经在运行,提示不要重复启动
解决方式

##关闭现有进程
stop-dfs.sh
##或者直接杀掉
kill -9 25061
rm -f /tmp/hadoop-hadoop-namenode.pid
##然后再启动
start-dfs.sh

解决其他DataNode 启动失败报错

# 查看 DataNode 日志是否报错
tail -n 100 $HADOOP_HOME/logs/hadoop-hadoop-datanode-*.log
# 查看 NameNode 日志
tail -n 100 $HADOOP_HOME/logs/hadoop-hadoop-namenode-*.log
##分析日志
tail -n 50 $HADOOP_HOME/logs/hadoop-hadoop-datanode-*.log

列如

java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/hdfs/datanode:
namenode clusterID = CID-8014bf5c-da4d-443f-8b77-5d0767b7607a;
datanode clusterID = CID-7cbd3b2b-90cc-4187-974d-cea39ec470db

这是 Hadoop 中最常见的错误之一,当 NameNode 格式化(hdfs namenode -format)之后,clusterID 发生变化,而本地的 DataNode 存储目录还保留着旧的 clusterID,就会导致不一致而拒绝启动。
解决方式
清空旧的 DataNode 数据目录
⚠️ 此操作会删除旧的 DataNode 数据(不影响 HDFS 上真正的数据,只是本地缓存块),用于单机或测试环境是安全的。
查看 dfs.datanode.data.dir 配置值

##-A 2 表示多显示后面 2 行,通常能显示出 <value>。
grep -A 2 dfs.datanode.data.dir $HADOOP_HOME/etc/hadoop/hdfs-site.xml

你会看到类似

<property><name>dfs.datanode.data.dir</name><value>/usr/local/hadoop/hdfs/datanode</value>
</property>

如果路径是 /usr/local/hadoop/hdfs/datanode,就执行:

rm -rf /usr/local/hadoop/hdfs/datanode/*
##然后再执行
start-dfs.sh
jps

⚠️ 注意
如果你看到的是别的路径,比如 /tmp/hadoop-hadoop/dfs/data,你就清空那个路径下的内容。

不要删错了 dfs.namenode.name.dir 的路径,那是 NameNode 的元数据。
如图最后问题解决,启动成功
在这里插入图片描述

http://www.dtcms.com/a/284461.html

相关文章:

  • TRAE IDE** 下载、安装、开发、测试和部署 2048 小游戏的全流程指南
  • Linux内核内存管理相关的配置参数
  • 腾讯会议本地录屏转存失败解决办法
  • React 18 vs Vue3:状态管理方案深度对比
  • 如何实现微信小程序引导组件【添加到我的小程序】+ 附源码
  • 2025最新版Python 3.13.5安装使用指南
  • AI+医疗!VR和MR解剖学和针灸平台,智能时代如何重塑健康未来
  • wx小程序原生开发使用高德地图api
  • Qt初阶开发:QMediaPlayer的介绍和使用
  • 工业控制线路板是什么?工控PCB的核心原理和设计要点
  • git基本操作【GIT-2】
  • Ubuntu20.04 安装qt5.12.8
  • 用Python实现神经网络(一)
  • 基于FPGA的IIC控制EEPROM读写(2)
  • 解决 MyBatis/MyBatis-Plus 中 UUID 类型转换错误的最佳实践
  • OC—初识UIStackView
  • 线程安全集合——CopyOnWriteArrayList
  • FRP配置( CentOS 7 上安装 FRP教程 )
  • MySql查询 值存在但查不到
  • 深度学习G3周:CGAN入门(生成手势图像)
  • 理解欧拉角:定义、转换与应用
  • HTTPS的工作原理及DNS的工作过程
  • 【LeetCode 热题 100】108. 将有序数组转换为二叉搜索树
  • SpringBoot使用ThreadLocal共享数据
  • 2021-07-21 VB窗体求范围质数(Excel复制工作簿)
  • Python 基础语法与数据类型(十三) - 实例方法、类方法、静态方法
  • 【测试100问】没有接口文档的情况下,如何做接口测试?
  • MinIO:开源对象存储解决方案的领先者
  • DiffPy-CMI详细安装教程
  • 【Vue进阶学习笔记】组合式API(Composition API)