Hadoop常见错误及处理方法

2019-03-28 13:47|来源: 网络

1、Hadoop-root-datanode-master.log 中有如下错误:
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in
导致datanode启动不了。

原因:每次namenode format会重新创建一个namenodeId,而dfs.data.dir参数配置的目录中包含的是上次format创建的id,和dfs.name.dir参数配置的目录中的id不一致。namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空dfs.data.dir参数配置的目录.
格式化hdfs的命令

2、如果datanode连接不上namenode,导致datanode无法启动。
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Call to ... failed on local exception: java.net.NoRouteToHostException: No route to host
关闭防火墙 机器重启后,防火墙还会开启。

3、从本地往hdfs文件系统上传文件,出现如下错误:
INFO hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException: Bad connect ack with firstBadLink

INFO hdfs.DFSClient: Abandoning block blk_-1300529705803292651_37023

WARN hdfs.DFSClient: DataStreamer Exception: java.io.IOException: Unable to create new block.

解决方法:
关闭防火墙:
禁用selinux:
编辑 /etc/selinux/config文件,设置“SELINUX=disabled”

4、安全模式导致的错误
org.apache.hadoop.dfs.SafeModeException: Cannot delete ..., Name node is in safe mode
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。

关闭安全模式

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

相关问答

更多
  • 几种常见的培训方式介绍 1、授课演讲:是最常用的培训方式,最简单,不需要特别的培训经验。 优点:对时间和内容的控制程度很高;适合面广;适合给大群体讲课。 缺点:缺少互动和参与;需要事先练习。 2、工作方法:便于团体有机会共同协作来解决问题,改善工作方法。 优点:可操作性强;参与程度高;强调结果; 缺点:花时间,需要学员的认可和努力;需要正确地定位。 3、角色扮演:使学员能 (1)运用知识和理论来提高技能 (2)发现在特定的环境中不同的态度和方式。有三种角色扮演类型: A一人:一人扮演角色,其他人观察; B三 ...
  • 大家有木有想过这个问题,听起来这个问题是不是有点矛盾的感觉呢,转化率和流量不就是一体的嘛。我们所说的转化是转化什么,还不是流量,把更多的浏览者变成我们的客户,这才是seo最终的目的。不管是我们做seo还是百度推广都是为了我们网站的排名,今天我们一起来看下几种常见的引流量的方法: 一、关键词选择和布局研究,策略性引流。 想要获取更多的浏览,要有策略性的去选择关键词进行优化,例如我们大的门户站点,只注重热门关键词优化肯定是不够的,一个是因为热词的竞争大,不好获取好的排名,做上去也有不稳定的可能性,另外是因为门户 ...
  • 试试看吧,加一个系统环境变量,名称 Path,值为: C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\IDM Computer Solutions\UltraEdit-32;C:\Program Files\C ...
  • A.rpm包卸载:rpm -e XXX.rpm (如果想忽略依赖,可加上--nodeps) B.yum remove xxx.rpm 这种方法非常不建议使用,卸载过程会将待卸载的软件包所依赖的软件包一并卸载掉,很容易造成系统缺少某些包而崩溃等问题 C.源码包卸载:cd命令进入编译后的软件目录,即安装时的目录,执行make uninstall命令即可;或者直接删除安装目录 如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。
  • 一、Can’t connect to MySQL server on ‘localhost’ (10061) 翻译:不能连接到 localhost 上的mysql 分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。 需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误。 解决:既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的my.ini配置的有问题。重新配置其即可。 如果觉得mysql负载异常,可以到mysql/bi ...
  • 我认为这一定是Eclipse的bug。 我在HadoopVersionAnnotation.java中更改了一个字母(具体来说,版本 - > versionx(保存) - >版本(保存))以触发重新编译,并且所有编译错误都消失了。 I think this must be an Eclipse bug. I changed one letter in HadoopVersionAnnotation.java (specifically, version -> versionx (save) -> versi ...
  • 您可以将每个操作包装到策略中: private void executeWithLogin(Runnable r) { try { r.run(); } catch (Exception e) { if (e.getExceptionCode == INVALID_SESSION_ID) { //login again login(); //retry on specific c ...