最近由于重装了系统,需要对之前搭建的集群要做些改动。在对每个虚拟机的网络进行正确的配置之后,重新执行hadoop/sbin/start-dfs.sh命令来启动HDFS,然而namenode却无法识别datanode。
后来通过对之前学过的知识进行回顾和梳理发现了问题的所在:
由于场景的改变造成了虚拟机IP地址的改变,在这里虽然在虚拟机中配置网络的IP也做了相应的改变,但是Hadoop集群中的一些自动生成旧文件的内容依旧和你以前的IP地址有关,这就造成NameNode无法识别之前的DataNode。

解决办法:
首先了解下namenode初始化工作目录的形成,我们在执行hdfs namenode -format 时只是初始化了namenode的工作目录,而datanode的工作目录是在datanode启动后自己初始化的。所以在这里首先要把各个DataNode下的工作目录进行删除(即HDFS的文件存储目录:hddata/dfs/current目录下的内容全部进行删除)。(如果某个DataNode的工作目录未进行删除,则通过相应的web网页去看HDFS的存储内存时依旧观察不到该DataNode)

其次namenode在format初始化的时候会形成两个标识:
blockPoolId:
clusterId:

新的datanode加入时,会获取这两个标识作为自己工作目录中的标识,一旦namenode重新format后,namenode的身份标识已变,而datanode如果依然持有原来的id,就不会被namenode识别。
所以只需要我们把各个DataNode上的工作目录进行删除后,然后在对hadoop的bin目录下执行namenode-format命令即可识别DataNode。

在启动HDFS时,针对集群中namenode无法识别datanode的问题的解决方法相关推荐

  1. HDFS高可用集群中NameNode无法启动——解决方案

    我是在刚搭建好HDFS高可用后,发现存在一台NamNode节点无法启动,但该节点上的DataNode仍可正常运行.其它的NameNode在正常运行. 问题可能是由多个NameNode上的元数据信息不一 ...

  2. OpenCV 无法启动此程序,因为计算机中丢失opencv_core249.dll(类似的),解决方法

    OpenCV 无法启动此程序,因为计算机中丢失opencv_core249.dll(类似的),解决方法 解决方法就是在当前运行代码文件目录下加入opencv对应缺失的dll 这样就运行代码就没有提示缺 ...

  3. 从外部访问Kubernetes集群中的应用

    https://zhaohuabing.com/2017/11/28/access-application-from-outside/ 前言 我们知道,kubernetes的Cluster Netwo ...

  4. 你了解Redis集群中的秘密吗?

    ​前言 今天早上北京地铁,看见一个正在学习Redis的小姐姐,很优秀 在之前的Redis系列文章中,介绍了Redis的持久化.主从复制以及哨兵机制,主从复制+哨兵机制,既可以解决主master和从sl ...

  5. 将自己写的windows服务加入到windows集群中

    最近发现windows集群能进行很多自定义,比如在集群中加入自己编写的服务. 能自定义的可不少,截个图: 本次演示中,只想用"通用服务"这个类型. 先列下步骤 编写一个记录时间的W ...

  6. Kubernetes 中创建 Pod 时集群中到底发生了些什么?

    想象一下,如果我想将 nginx 部署到 Kubernetes 集群,我可能会在终端中输入类似这样的命令: $ kubectl run --image=nginx --replicas=3 然后回车. ...

  7. 解决集群中MATLAB无法启动并行池的问题

    MATLAB无法启动并行(parpool)Failed to locate and destroy old interactive jobs. 起因 尝试 解决方法 起因 最近在集群中使用MATLAB ...

  8. ES集群中出现UNASSIGNED分片时的解决思路

    原文:https://www.modb.pro/db/182864 引入此问题的原因,是因为在单节点的ES部署策略中,如果在设置某个ES索引的replica不为零,你会发现. 存在Unassigned ...

  9. Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统

    阅读目录(Content) 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 1.2.数据块(data block)简介 1.3.对分布式文件系统中的块进行抽象会带来很多好处 二.Jav ...

最新文章

  1. eclipse中java项目转换为web项目
  2. linux内核链表使用例,linux内核链表的使用例子
  3. pjax 历史管理 jQuery.History.js
  4. [YTU]_2619 (B 友元类-计算两点间距离)
  5. IIS设置Access-Control-Allow-Origin
  6. 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发
  7. Shaolin HDU - 4585(map模板题)
  8. 指针常量与常量指针精解【一次掌握】
  9. 怎么保存python文件_python如何保存文本文件
  10. 六条“黑客伦理”(hacker ethic)
  11. 2019年浙大计算机专业前景,2019年浙大计算机专业一志愿录取.pdf
  12. 程序员35岁之后的职业发展
  13. matlab 向量元素,MATLAB遍历向量的元素
  14. 查看C#Dll的一个 工具 ILSpy
  15. 制作openstack离线 yum 源
  16. mysql 中的脏读与幻读_mysql中脏读、不可重复读、幻读以及四种隔离级别的浅显理解...
  17. 关于性能测试的这点事,值得收藏~
  18. 80x86 汇编语言编程:判定数据序列的奇偶个数
  19. 服务器维修预算申请,云服务器费用预算申请范文
  20. Revit二次开发手记【1】

热门文章

  1. ELK 构建 MySQL 慢日志收集平台详解
  2. PLSQL 申明和游标
  3. Mutual and feedback(互评与反馈)
  4. Android TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题
  5. Oracle常用的几个父栓
  6. 利用FS寄存器获取KERNEL32.DLL基址算法的证明(ZZ)
  7. 告诉你银行在年底为存储做的小动作
  8. 域名解析服务之DNS查询类型
  9. (cljs/run-at (JSVM. :all) 细说函数)
  10. 如何解决秒杀的性能问题和超卖的讨论