精华内容
下载资源
问答
  • 第一步:DataNode进程启动失败需要确定启动失败的原因,可以到logs目录查看对应的datanode日志信息。 如果你没有自定义配置日志输出目录,那就默认在${HADOOP_HOME}/logs目录下,通过指令或者下载datanode相关日志...

    今天有个学生问我一个问题,说自己搭建的hadoop环境,在启动后通过jps指令查看进程发现DateNode进程消失了,不知道是什么原因,下面看看我们是如何来解决的!

    第一步:DataNode进程启动失败需要确定启动失败的原因,可以到logs目录查看对应的datanode日志信息。

    如果你没有自定义配置日志输出目录,那就默认在${HADOOP_HOME}/logs目录下,通过指令或者下载datanode相关日志文件到本地查看异常信息,这里我们发现异常如下:

    java.io.IOException: Incompatible clusterIDs in /opt/modules/hadoop-2.5.0/data/tmp/dfs/data: namenode clusterID = CID-2904e8aa-ff11-4ae7-a64e-c1c8269d1905; datanode clusterID = hadoop-senior.nixuange.com
    	at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:477)
    	at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:226)
    	at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)
    	at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:975)
    	at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:946)
    	at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)
    	at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
    	at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:812)
    	at java.lang.Thread.run(Thread.java:745)
    

    第二步:发现异常原因

    我们通过异常信息发现发生异常的原因在于namenode 的clusterID 和datanode clusterID 不一致导致的。

    namenode clusterID = CID-2904e8aa-ff11-4ae7-a64e-c1c8269d1905; datanode clusterID = hadoop-senior.nixuange.com

    第三步:解决方案

    方案1:直接删除hdfs目录,重新格式化hdfs,不过不建议这一种,原因就是太暴力,不适用于生产环境。

    方案2:推荐使用

    1)查看hdfs-site.xml配置

    找到dfs.name.dir(元数据保存目录)和dfs.data.dir(hdfs数据保存目录)的配置(hadoop3.x可能是dfs.namenode.name.dir和dfs.datanode.data.dir,在官方文档有默认值

    2)到主节点的${dfs.name.dir}/current下查看VERSION文件,查看clusterID

    到从节点的${dfs.data.dir}/current下查看VERSION文件,查看clusterID

    发现,两者确实不一样!

    3)修改从节点VERSION文件的clusterID与主节点一致

    4)保存退出,重启hadoop,发现DataNode进程正常启动。

    补充:

    1)如果不会搭建hadoop环境可以参考我的大数据系列教程中的问章:

    大数据系列教程003-hadoop伪分布式环境搭建步骤

    2)clusterID不一致原因:

     当我们执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)中保存一个current/VERSION文件,记录clusterID,标识了所格式化的 namenode的版本。如果我们频繁的格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径)的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。

     

    展开全文
  • 现象: nameNode 正常启动,其他几台机器的 dataNode 均未启动;50070中无 Live Node。 查看 dataNode 日志: tail -1000 $HADOOP_HOME/logs/hadoop-hadoop-datanode-[hostname].log...

    现象:

    nameNode 正常启动,其他几台机器的 dataNode 均未启动;50070中无 Live Node。

     

    查看 dataNode 日志:

    tail -1000 $HADOOP_HOME/logs/hadoop-hadoop-datanode-[hostname].log
    2018-03-26 23:36:08,583 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /home/hadoop/hdpData/dfs/data: namenode clusterID = CID-1e632e00-4bf0-40e9-9680-4426f38b0a56; datanode clusterID = CID-58d38808-bb74-4459-b581-b3ddbcc27c65
    
    ▽
    2018-03-26 23:36:08,583 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to centos00/192.168.2.100:9000. Exiting.
    java.io.IOException: All specified directories are failed to load.
    	at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478)
    	at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1342)
    	at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1308)
    	at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:314)
    	at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:226)
    	at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:867)
    	at java.lang.Thread.run(Thread.java:745)

    从报错信息中可以看出是 dataName 与 NameNode 的集群 id 不同所导致。

     

    验证报错信息,分别查看 hadoop 数据目录下 namenode。(hdpData 是我自定义的数据目录)

    cat ~/hdpData/dfs/name/current/VERSION

    经查看,确实两台机器的 clusterId 不一致。

     

    由于是测试用机器,因此直接 rm -rf 了 dataNode 机器上 hdpData 目录下的所有内容;然后在nameNode 对应机器上进行服务重启。(其实只需要删除 hdpData/dfs/data 即可,服务也可以单独重启 dataNode)

    问题解决。50070中正常显示 dataNode;jps 正常;hdpData 目录下 dfs 目录重新生成,VERSION 中clusterId 一致。

     

     

     

     

     

    转载于:https://my.oschina.net/roadom/blog/1785321

    展开全文
  • 初学Hadoop,学习过程遇到很多问题,也总结了解决办法! 很简单,有日志首先看日志,没日志...查看datanode日志找出问题 查看日志如下: 从日志上看,框起来的说明了问题 datanode的clusterID 和 namenode的clu...

    初学Hadoop,学习过程遇到很多问题,也总结了解决办法!

    很简单,有日志首先看日志,没日志的就要看配置了

     

    今天遇到奇怪的事情,昨天搭建的伪分布式运行Hadoop平台,今天重新运行就出毛病了(datanode出现自动关闭)

     

    查看datanode日志找出问题

    查看日志如下:

    从日志上看,框起来的说明了问题

    datanode的clusterID 和 namenode的clusterID 不匹配。

     

    解决办法:

    根据日志中的路径,cd /home/hadoop/tmp/dfs

    能看到 data和name两个文件夹,

    将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID

    让两个保持一致

    然后重启,启动后执行jps,查看进程
    20449 NodeManager
    19776 NameNode
    21123 Jps
    19918 DataNode
    20305 ResourceManager

     

    出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变

    展开全文
  • datanode 内存及GC优化

    千次阅读 2019-05-17 19:31:38
    datanode内存被占用过大,负载过高,查看 hdfs dfsadmin -report 发现状态为 Dead ,查看datanode日志文件hadoop-sphuser-datanode-XXX.log ,发现下面的错误。 2019-05-11 16:20:26,551 ERROR org.apache.hadoop...

    事件描述:

    datanode内存被占用过大,负载过高,查看 hdfs dfsadmin -report 发现状态为 Dead ,查看datanode日志文件hadoop-sphuser-datanode-XXX.log ,发现下面的错误。

     

    2019-05-11 16:20:26,551 ERROR org.apache.hadoop.hdfs.server.datanode.DirectoryScanner: Error compiling report

    java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded

            at java.util.concurrent.FutureTask.report(FutureTask.java:122)

            at java.util.concurrent.FutureTask.get(FutureTask.java:192)

            at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.getDiskReport(DirectoryScanner.java:566)

            at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.scan(DirectoryScanner.java:425)

            at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.reconcile(DirectoryScanner.java:406)

            at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.run(DirectoryScanner.java:362)

            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

            at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)

     

    分析:

    GC占用大量时间但释放很小空间,超出了GC开销限制。

     

    Sun 官方对此的定义:超过98%的时间用来做GC并且回收了不到2%的堆内存时会抛出 java.lang.OutOfMemoryError 异常。

     

    解决办法:

    加大堆内存

    优化GC

     

    1)、编辑 namenode master节点的配置文件 etc/hadoop/hadoop-env.sh ,修改 HADOOP_DATANODE_OPTS 参数为下所示:

    export HADOOP_LOG_DIR=/data/hadoop-2.7.3/logs

    export HADOOP_DATANODE_OPTS="-Xmx16G -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution"

     

    -Xmx 配置为总内存的一半

     

    参数说明:

    JVM分别对新生代和旧生代采用不同的垃圾回收机制

     

    并发收集器CMS具有响应时间优先的特点,所以是低延迟、低停顿的,CMS是老年代收集器。

     

    -Xmx16G 堆内存设置为16G

    -XX:+UseParNewGC 设置新生代内存收集为并行收集

    -XX:+UseConcMarkSweepGC 使用CMS垃圾收集器,来为老年代内存并行收集

    -XX:CMSInitiatingOccupancyFraction=80 设置Old区当对象存满80%的时候触发Full GC

    -XX:+CMSParallelRemarkEnabled 并行运行最终标记阶段,加快最终标记的速度,降低标记停顿

    -XX:+PrintTenuringDistribution 显示每次Minor GC时Survivor区中各个年龄段的对象的大小

     

    2)、拷贝配置文件到集群的其他节点,然后重启服务

     

    参考:

    https://www.cnblogs.com/hit-zb/p/8651369.html

    展开全文
  • DataNode

    2020-05-08 16:24:33
    Namenode恢复后DataNode起不来 ... 查看日志, hdfs.server.datanode.DataNode: Block pool ID needed, but service not yet registered with NN 删除 dfs 的 data, 因为里 current 文件datanode I...
  • 关于DataNode启动不了的问题:如果jps发现自己的datanode没能启动,查看启动日志发现如图所示的错误,那么说明你的一定做过类似重新初始化namenode的操作,导致两次iD不一样。 解决方案:重新初始化我们的...
  • hadoop2.6集群启动后,用 jps 命令查看进程,发现没有 datanode 进程,查看datanode日志,日志中报错部分内容如下: 2015-08-08 15:12:02,952 INFO org.apache.hadoop.hdfs.server.common.Storage: DataNode ...
  • 查看datanode日志显示: WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: slave1.mywind.com.cn/192.168.1.5:9000 问题定位:core-site.xml 问题原因: 1) 不正确的HDFS...
  • 查看DataNode日志 java.io.IOException: The path component: '/var/lib/hadoop-hdfs' in '/var/lib/hadoop-hdfs/dn_socket' has permissions 0755 uid 993 and gid 991. It is not protected because it is owned ...
  • hdfs启动后datanode闪挂

    2017-08-07 10:20:40
    问题描述: start-dfs.sh启动hdfs后,几个datanode全部几...查看datanode日志 2017-08-06 10:46:00,800 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /var/data/dfs/data/in_use.lock acquired by n
  • 测试环境,由于测试需求,重新format namenode后,导致...1. 查看datanode日志,可以发现错误“Initialization failed for Block pool <registering> (Datanode Uuid unassigned)” 1 2 3 4 5 6 7 8 ...
  • 但是在namenode上使用hdfs dfsadmin -report 看不...查看datanode日志: 2014-12-02 18:48:42,046 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool BP-1446562160-127.0.0.1-1417496109738 (Da...
  • 启动namenode,通过50070端口查看,发现livenode只有一个--namenode,查看datanode日志,发现有”Incompatible clusterIDs“错误,提示很明显,namenode和datanode的集群id不一致 解决办法:找到core-site.xml配置...
  • 由于之前安装hadoop-2.5.0版本,一直都可以相关节点都可以起来。今天手贱格式化namenode,造成datanode启动失败。[root@xp hadoop-2.5.0]# sbin...接着查看datanode日志[root@xp logs]# tail -50 hadoop-root-datanod...
  • 查看DataNode 日志出现如下错误: 进入配置文件目录搜索全文发现wokers 配置文件中主机名写错了 grep “host64” ./ -nr 正确的主机名应该是host46 将主机名修改正确,重启Hadoop /sbin/stop-all...
  • 查看DataNode端口没有被其他进程占用,但是依旧用jps查看不了DataNode,此时打开hadoop,访问http://localhost:50070,点击页面中的Namenode logs链接,在logs页面点击hadoop-hadoop-datanode-ubuntu.log 链接,发现...
  • datanode或者namenode无法启动

    千次阅读 2018-02-27 20:50:29
    问题描述起初问题是datanode无法启动,查看datanode中/home/zkpk/Software/hadoop-2.4.0/logs的datanode日志发现问题是cluster ID不一致导致的。 网上的解决方法有修改datanode的clusterID与namenode的clusterID...
  • 在网上看了好多的解决办法,都是千篇一律的namenode的namespaceID或者clusterID不匹配,但是我查看了我的日志,并没有发现类似的情况,而且都是正常的,没有出现Error的信息,但是也有的文章启发了我,可以试试从...
  • 多次格式化,datanode未能启动,出现IO异常,...查看datanode日志发现异常(/export/servers/hadoop-2.6.0-cdh5.14.0/logs/hadoop-root-datanode-node02.log) 解决办法 进入 cd /export/servers/hadoop-2.6.0
  • 每个从节点上nodemanager也正常启动,就是从节点上服务datanode无法全部正常启动,有时候只有一个节点上的datanode起来了,其他都没启动,或者从节点上的datanode全部无法启动,在slave节点上查看日志 vi hadoop-...
  • datanode无法启动问题

    2017-02-18 20:56:00
    在执行了hdfs namenode -format...查看datanode日志发现: datanode的ClusterId和namenode的ClusterId不一致。 cd hadoop/dfs/data/current 找到version文件 cd hadoop/dfs/name/current 找到version文件...
  • 问题: 在slave节点上jps看到 DataNode进程正常启动,但是网页上不显示DataNode节点,也没有data下的文件 查看datanode日志为 解决:
  • hadoop datanode 无法启动(Datanode denied ...重启datanode,自动shutdown,查看日志发现有报错 2015-07-07 04:20:38,885 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.ipc
  • 当群起Hadoop集群时候,发现两台从机的datanode启动都是失败的状态,查看日志发现,错误信息是: 2019-06-20 09:53:12,874 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool (Datanode Uuid ...
  • hadoop datanode无法启动

    千次阅读 2011-12-27 16:32:18
    集群中的datanode由于未知原因无法和namenode保持正常心跳,从而被namenode从集群中删除,但是查看datanode日志,发现该datanode还在运行。在重启该datanode的过程中,datanode运行到MBean for source ugi ...
  • datanode无法启动

    2015-07-30 16:03:42
    格式化之后发现datanode无法启动,查看日志信息(hadoop文件夹下的logs中的hadoop-fay-datanode-fay-virtual-machine.log),其中有: FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization ...
  • 1. 环境描述: 虚拟机10,CentOS6.4,伪分布式安装Hadoop。 2. 问题描述: ...查看datanode启动日志 cat/home/hadoop/hadoop-0.20.203.0/logs/hadoop-hadoop-datanode-hadoop.log 查看日志发现 这是
  • 启动服务后失败,查看datanode日志,提示错误:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /var/lib/hadoop-0.20/cache/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 455
精华内容 182
关键字:

查看datanode日志