解决Hadoop集群hdfs无法启动DataNode的问题
问题描述:
在hadoop启动hdfs的之后,使用jps命令查看运行情况时发现hdfs的DataNode并没有打开。
笔者出现此情况前曾使用hdfs namenode -format格式化了hdfs
如有三个hadoop集群,分别为hadoop102,hadoop103,hadoop104 其问题情况如下



可见三个机器均没有将DataNode启动。
问题分析:
进入hadoop根目录的logs中查看DataNode的日志文件

可以看见报错信息
java.io.IOException: Incompatible clusterIDs in /opt/module/hadoop-3.1.3/tmp/dfs/data: namenode clusterID = CID-726c3bd8-d0cd-4d36-a62f-c1ee3723935e; datanode clusterID = CID-0a991ac2-ed1e-4b2c-b179-c7d943eeae1f
这里显示NameNode的clusterID和DataNode的clusterID不一致,所以无法启动DataNode
这种情况可能时因为我们使用hdfs namenode -format的时候仅仅格式化了namenode的clusterID,没有同步格式化DataNode的clusterID。这就导致了二者的clusterID不一致从而无法启动DataNode。
解决方案:
方案一(简单):
删除NameNode所在机器的hadioop根目录etc/hadoop/core-site.xml文件中定义的hadoop.tmp.dir 文件夹。笔者这里设置的时hadoop根目录中的data目录。(有些人设置的时tmp目录,根据自己的配core-site.xml中配置的信息来)
删除NameNode之外的hadoop根目录的data文件夹。
重新格式化hdfs hdfs namenode -format
问题解决!
方案二:
观察刚刚的日志文件,可以知道NameNode的ClusterID为CID-726c3bd8-d0cd-4d36-a62f-c1ee3723935e我们只需要用这个clusterID去替换DataNode文件中的clusterID即可
在NameNode所在机器的hadioop根目录etc/hadoop/core-site.xml文件中定义的hadoop.tmp.dir 文件夹中一直进入到datanode文件中/opt/module/hadoop-3.1.3/tmp/dfs/data/current/VERSION 修改VERSION中的clusterID为刚刚NameNode的clusterID。
在其他机器中,修改data文件夹中的设置/opt/module/hadoop-3.1.3/data/dfs/data/current/VERSION
修改VERSION中的clusterID为刚刚NameNode的clusterID。
问题解决!
解决Hadoop集群hdfs无法启动DataNode的问题的更多相关文章
- 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南
原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...
- 安装hadoop集群--hdfs
安装hadoop集群--hdfs 大数据软件 链接:https://pan.baidu.com/s/1-3PYLHMgvvONawJq55hstQ 提取码:izqf 准备一台干净的虚拟机-centos ...
- 最近有安装了一次hadoop集群,NameNode启动失败,及原因
最近有安装了一次hadoop集群,NameNode启动失败,查看日志,找到以下原因: 遇到的异常1: org.apache.hadoop.hdfs.server.common.Inconsistent ...
- Hadoop集群-HDFS集群中大数据运维常用的命令总结
Hadoop集群-HDFS集群中大数据运维常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客会简单涉及到滚动编辑,融合镜像文件,目录的空间配额等运维操作简介.话 ...
- 解决hadoop 集群启动常见错误办法
hadoop 集群常见错误解决办法 hadoop 集群常见错误解决办法: (一)启动Hadoop集群时易出现的错误: 1. 错误现象:Java.NET.NoRouteToHostException ...
- hadoop集群的节点启动问题
start-all.sh 启动集群时,NameNode或DataNode节点启动不了,但之前可以启动. 查看hadoop中hdfs-site.xml配置文件 <property> < ...
- hadoop集群namenode同时挂datanode
背景:(测试环境)只有两台机器一台namenode一台namenode,但集群只有一个结点感觉不出来效果,在namenode上挂一个datanode就有两个节点,弊端见最后 操作非常简单(添加独立节点 ...
- 4.Hadoop集群搭建之启动
配置好Hadoop.HDFS.YARN.Zookeeper集群后,需要按照顺序启动. 前期准备 配置好Hadoop.HDFS.YARN.Zookeeper集群 先stop掉所有的hadoop服务 使用 ...
- 大数据 时间同步问题 解决hbase集群节点HRegionServer启动后自动关闭
1)在hbase-site.xml文件中 修改增加 ,将时间改大点<property><name>hbase.master.maxclockskew</name>& ...
随机推荐
- Memory Management in Rust
程序在运行时需要请求操作系统分配内存以及释放内存,因此,程序员在编写程序时,需要显式(手动)地编写分配和释放内存的代码,或者隐式(自动,由语言保证)地进行内存管理.对于前者,C/C++ 是代表语言,程 ...
- netty系列之:channel,ServerChannel和netty中的实现
目录 简介 channel和ServerChannel netty中channel的实现 AbstractChannel和AbstractServerChannel LocalChannel和Loca ...
- vue的父与子组件的访问
父访问子 (需要掌握) this.$children 和 this.$refs this.$children 返回的是一个数组,包含父组件的所有子组件 this,$refs 返回的是一个对象,默认为空 ...
- ansible批量修改服务器密码
看了一下网上代码大多数是ansible-playbook实现的,需要写一个脚本,或者手动传递变量进去. 以前用python tcp模块写过客户端主动上报修改密码脚本 今天写一个ansible主控客户端 ...
- PostgreSQL VACUUM 之深入浅出 (一)
前言 VACUUM 是 PostgreSQL MVCC (Multiversion concurrency control) 实现的核心机制之一,是 PostgreSQL 正常运行的重要保证.本文将通 ...
- 『德不孤』Pytest框架 — 8、Pytest断言
目录 1.什么是断言 2.Pytest断言 3.Pytest的断言方式及应用场景 (1)使用assert语句 (2)断言预期的异常 (3)拓展 4.优化断言 5.使用标记检查异常 1.什么是断言 对于 ...
- Spring Cloud Nacos实现动态配置加载的源码分析
理解了上述Environment的基本原理后,如何从远程服务器上加载配置到Spring的Environment中. NacosPropertySourceLocator 顺着前面的分析思路,我们很自然 ...
- Ubuntu安装g++命令
Ubuntu安装g++ sudo apt-get install make gcc g++ 再装上函数手册 sudo apt-get install manpages-dev 或者采用 sudo ap ...
- 洛谷P3267.侦察守卫
题目大意 一颗 \(n(1\leq n\leq 5\times 10^5)\) 个节点的树,在某一点 \(i\) 花费 \(w_{i}(w_{i}\leq 1000)\) 放置一个侦察守卫后可以监视到 ...
- 基于NopCommerce框架开发的微信小程序UrShop
Urshop小程序商城 介绍 UrShop小程序商城 2.0发布啦,发布地址https://gitee.com/urselect/urshop UrShop 根据NopCommerce框架开发的,基于 ...