java.io.IOException: All specified directories have failed to load.

java.io.IOException: All specified directories have failed to load.
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:552)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1705)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1665)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:390)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:280)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)
    at java.lang.Thread.run(Thread.java:748)

  产生原因:

    时隔半年,重新安装一次Hadoop,出现了上述的问题,原因是我在启动FDFS时没有启动namenode,然后就重新进行了格式化,结果namenode启动成功了,datanode却无法启动了,原因时在进行多次格式化的之后,namenode和datanode的clusterID不同了。

  解决办法:找到namenode和datanode的VERSION文件,文件路径在hdfs-site.xml中配置,我的是如下路径,每个人的路径根据自己的配置有所不同

  

<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///export/servers/hadoop-3.1.1/datas/namenode/namenodedatas</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///export/servers/hadoop-3.1.1/datas/datanode/datanodeDatas</value>
    </property>

  把datanode的clusterID改为namenode的clusterID,记住所有机器的datanode的clusterID都要改,然后重新启动hadoop即可。

  做大数据一定要养成看日志的习惯,大数据出错的地方实在太多了,而且不会在控制台显示错误,这个时候就要去日志里面找错误。

原文地址:https://www.cnblogs.com/rao11/p/12364790.html

时间: 2024-10-15 13:00:45

java.io.IOException: All specified directories have failed to load.的相关文章

[Nutch]问题解决:Exception in thread &quot;main&quot; java.io.IOException: Job failed

1. 问题描述 在运行Nutch的时候会出现如下异常: Exception in thread "main" java.io.IOException: Job failed! 2. 问题原因 nutch-default.xml中的plugin.folders的配置问题. 3. 问题解决 在配置plugin目录的时候,一定要使用绝对路径. <property> <name>plugin.folders</name> <value>C:/Nu

Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D 解决方法: 编辑 hive-site.xml 文件,添加下边的属性 <property> <name>system:java.io.tmpdir<

java.io.IOException: read failed, socket might closed or timeout, read ret: -1

近期项目中连接蓝牙之后接收蓝牙设备发出的指令功能,在连接设备之后,创建RfcommSocket连接时候报java.io.IOException: read failed, socket might closed or timeout, read ret: -1错误.以下说一下我的解决方法,希望对各位有一点帮助. private BluetoothSocket mSocket; <span style="white-space:pre"> </span>priva

关于 java.io.IOException: open failed: EACCES (Permission denied)

今天解决了一个问题,不得不来和大家分享.就是关于 java.io.IOException: open failed: EACCES (Permission denied)的问题,网上也有很多人把这个问题解决了,那么我在这里再重复是不是就是多余的呢?未必哈. 在此,我针对的是,当你用以下这个方法解决不了的时候 在mainfest文件中,增加以下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAG

hadoop错误java.io.IOException Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try

错误: java.io.IOException: Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try 原因: 无法写入:我的环境中有3个datanode,备份数量设置的是3.在写操作时,它会在pipeline中写3个机器.默认replace-datanode-on-failure.policy是DEFAULT,如果系统中的dat

解决hiveserver2报错:java.io.IOException: Job status not available - Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

用户使用的sql: select count( distinct patient_id ) from argus.table_aa000612_641cd8ce_ceff_4ea0_9b27_0a3a743f0fe3; 下面做不同的测试: 1.beeline -u jdbc:hive2://0.0.0.0:10000 -e "select count( distinct patient_id ) from argus.table_aa000612_641cd8ce_ceff_4ea0_9b27_

hadoop错误Ignoring exception during close for [email&#160;protected] java.io.IOException Spill failed

1.错误    Ignoring exception during close for [email protected] java.io.IOException: Spill failed2.原因     本地磁盘空间不足非hdfs (我是在myeclipse中调试程序,本地tmp目录占满)3.解决     清理.增加空间 如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的[推荐]. 如果,您希望更容易地发现我的新博客,不妨点击一下左下角的[关注我]. 如果,您对我的博客所讲述的内容有

Android - Error: &quot;java.io.IOException: setDataSource failed.: status=0x80000000&quot;

Error: "java.io.IOException: setDataSource failed.: status=0x80000000" 本文地址: http://blog.csdn.net/caroline_wendy Android使用MediaPlayer类播放视频时, 报错, setDataSource错误; 即MediaPlayer无法设置数据源. 可能的原因: 访问网络数据源, 需要权限, 但在AndroidManifest中未添加网络权限; 解决方法: <use

java.io.IOException: open failed: EACCES (Permission denied)问题解决

1.  问题描述:在Android中,用程序访问Sdcard时,有时出现“java.io.IOException: open failed: EACCES (Permission denied)", 这是由于没有增加sdcard对应权限而导致的. 2.  解决办法: 在mainfest文件中,增加以下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 问题解