搭建了一个小的实验集群,一共4台机器,一台namenode,三台datenode。运行start-all,发如今namenode上没有报不论什么错误,可是启动后直接显示datenode数量为0。
    到datenode上查看日志。发现有这么个错误: ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs。百度后发现出现这个问题通常是datenode中的数据文件出了问题。这时我想到自己的几台datenode是直接由namenode中的系统复制过来,而我并没有设置hadoop.tmp.dir參数,也就是默认存储在/tmp文件夹中,这就跟直接namenode单机时存储的暂时文件冲突了才造成了以上问题。解决方法也非常easy。将tmp文件夹中的过期暂时文件清楚,或者另外设置hadoop.tmp.dir參数指定新的暂时文件夹。

这里我选择了后者。由于我发现/tmp文件夹下的文件常常会受到损坏。

    攻克了上面这个错误后,datenode最终有一个了,可是我有三台datenode。应该显示3个datenode啊!接着看另外两台的日志,发现里面有大量无法连接到namenode的错误。由于我设置namenode时用的是主机名而非ip地址。看来应该是由于hosts文件设置错误。打开/etc/hosts文件,果然namenode的主机名相应地址误设为了127.0.0.1,改过来之后,再次又一次格式化hdfs,start-all。最终能看到3个datenode了。真不easy。
    总结一下,假设namenode可以成功启动,可是datenode显示为0,那么问题通常是出在datenode上。

这时候我们可曾经往datenode机器上查看/var/log/hadoop下的日志文件,里边应该会有一些错误提示,然后依据错误提示就能大体知道问题的所在。可能发生的问题无外乎下边几种:

    1、datenode机器上的hadoop后台无法启动。出现这个问题的解决办法非常多样,比方笔者这次就遇上了tmp目录中存在失效文件的问题。
    2、datenode无法与namenode通信。出现这样的问题一般都是网络设置有误,细致排查网络设置后应该就能找到解决的方法。假设datenode机器上的问题排除,那么出现这个错误也有可能是由于namenode上设置的监听地址有误造成的,能够在namenode上执行netstat命令看一看hadoop后台有没有在预期地址:port上监听。

hadoop集群搭建datenode为0问题的解决的更多相关文章

  1. Hadoop集群搭建-Hadoop2.8.0安装(三)

    一.准备安装介质 a).hadoop-2.8.0.tar b).jdk-7u71-linux-x64.tar 二.节点部署图 三.安装步骤 环境介绍: 主服务器ip:192.168.80.128(ma ...

  2. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建

    Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...

  3. Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!)

    Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!) 一.JDK的安装 安装位置都在同一位置(/usr/tools/jdk1.8.0_73) jdk的安装在克隆三台机器的时候可以提前安装 ...

  4. 大数据 --> Hadoop集群搭建

    Hadoop集群搭建 1.修改/etc/hosts文件 在每台linux机器上,sudo vim /etc/hosts 编写hosts文件.将主机名和ip地址的映射填写进去.编辑完后,结果如下: 2. ...

  5. Linux环境下Hadoop集群搭建

    Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...

  6. Hadoop(二) HADOOP集群搭建

    一.HADOOP集群搭建 1.集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 Na ...

  7. 1.Hadoop集群搭建之Linux主机环境准备

    Hadoop集群搭建之Linux主机环境 创建虚拟机包含1个主节点master,2个从节点slave1,slave2 虚拟机网络连接模式为host-only(非虚拟机环境可跳过) 集群规划如下表: 主 ...

  8. 三节点Hadoop集群搭建

    1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode.slavenode1和slavenode2.该过程参考上一篇博文CentOS6.5安装配置详解 2 ...

  9. 大数据初级笔记二:Hadoop入门之Hadoop集群搭建

    Hadoop集群搭建 把环境全部准备好,包括编程环境. JDK安装 版本要求: 强烈建议使用64位的JDK版本,这样的优势在于JVM的能够访问到的最大内存就不受限制,基于后期可能会学习到Spark技术 ...

随机推荐

  1. spring AOP详解四

    AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理.安全检查.缓存.对象池管理等.AOP 实现的关键就在于 ...

  2. API生命周期第二阶段——设计:如何设计API(基于swagger进行说明)

    题外话 在新的项目中,推行了swagger用于对API的设计.以期待解决我们上篇博客中说到了一些现象,提升工作效率.那么,结合到当时和全项目组成员做培训,以及后续的给主要应用者做培训,以及当初自己接触 ...

  3. hibernate与struts框架实现增删改查

    这里配置hibernate与struts不再过多赘述,配置搭建前文已经详细讲解,配置如下: hibernate.hbm.xml配置: <?xml version="1.0" ...

  4. Welcome-to-Swift-03字符串和字符(Strings and Characters)

    String是例如“hello, world“”,“海贼王” 这样的有序的Character(字符)类型的值的集合,通过String类型来表示. Swift 的String和Character类型提供 ...

  5. BZOJ 4551 [Tjoi2016&Heoi2016]树 ——并查集

    树剖显然可以做. 然而有一种更神奇的方法,并查集+时光倒流. 每个节点指向它上面最近的标记节点,标记节点指向自己,然后删除标记,就可以用并查集查询了. #include <map> #in ...

  6. BZOJ1879 [Sdoi2009]Bill的挑战 【状压dp】

    题目 输入格式 本题包含多组数据. 第一行:一个整数T,表示数据的个数. 对于每组数据: 第一行:两个整数,N和K(含义如题目表述). 接下来N行:每行一个字符串. T ≤ 5,M ≤ 15,字符串长 ...

  7. windows命令总结

    工作中还是经常使用windows系统,将windows中常用的命令进行总结. 1. 从命令行打开资源管理器,即文件夹 start . 2. 查看端口占用情况 比如查看3000端口的占用情况 netst ...

  8. Windows connect to mysql failed: can't get hostname for your address

    My mysql is on Linux platform. When I used my laptop connect to mysql, I got error message like &quo ...

  9. Docker 架构详解

    Docker 的核心组件包括: Docker 客户端 - Client Docker 服务器 - Docker daemon Docker 镜像 - Image Registry Docker 容器 ...

  10. QBXT 二月五号整理

    给你一列数, 询问和最大的子串. N<=10^6 // N <=10^6 #include<cstdio> #include<iostream> using nam ...