您现在的位置 >> Hadoop教程 >> Hadoop实战 >> 专题  
 

hadoop常见错误汇总及解决办法一

【作者:Hadoop实战专家】【关键词:安全模式 集群 文件系统 修改 】 【点击:16640次】【2013-10-2】
1、如果是测试环境,可以取消hadoop hdfs的用户权限检查。在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。运行期通过命令也可以进入安全模式。  

相关热门搜索:hadoop集群硬件配置 flume 集群配置 storm集群安装

大数据标签:hadoop hdfs hbase bigdata

我们经常会遇到一些问题,而且可能会重复性遇到,这些方案可以收藏为以后备用。我们经常遇到如下问题:
1.两次以上格式化造成NameNode 和 DataNode namespaceID 不一致,有几种解决办法?
2.如何动态添加DataNode 动态将某个节点加入到集群中
3.用window 提交eclipse 任务发现权限不通过:
4.eclipse 运行中发现 Name node is  in safe mode

1.两次以上格式化造成NameNode 和 DataNode namespaceID 不一致。

报错:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /var/lib/hadoop-0.20/cache/hdfs/dfs/data: namenode
namespaceID = 240012870; datanode namespaceID = 1462711424 .

解决方法1:修改$hadoop.tmp.dir    下的dfs/data/current/VERSION 文件中namespaceID 使其一致。
解决方法2:这个有点残暴,就是清空hadoop.tmp.dir这个目录,在我这里是/home/work/hadoop_tmp
分析:
上面是很多新手经常遇到的问题,hadoop.tmp.dir是什么?下面给大家详细看一下:
我是通过图1操,vim hdfs-site.xml

path.png (5.59 KB, 下载次数: 1)

  

2014-3-5 23:12 上传

图1

查看hdfs.xml文件内容的.

图2是hdfs.xml文件的内容,位于hadoop/conf文件夹下。

hdfstmp.png (18.66 KB, 下载次数: 1)

  

2014-3-5 23:08 上传

图2

hadoop.tmp.dir这个代表的意思hadoop的存放目录,类似我们的数据是放在本地文件中的C盘还是D盘。但是因为Linux特殊的文件系统,所以存放在了/home/work/hadoop_tmp文件夹下。
上面我们懂得了,hadoop.tmp.dir它的意思,那么我们进一步

进入通过 vim dfs/data/current/VERSION

version.png (6.36 KB, 下载次数: 1)

  

2014-3-5 23:18 上传

编辑下面内容:修改namenodeID即可。

namenodeid.png (14.72 KB, 下载次数: 1)

  

2014-3-5 23:19 上传

2.DataNode 或者 JobTracker 出了故障 单独启动

hadoop-daemon.sh start datanode
hadoop-daemon.sh start jobtracker

3.动态添加DataNode 动态将某个节点加入到集群中

hadoop-daemon.sh --config ./conf start datanode
hadoop-daemon.sh --config ./conf start tasktracker
相关内容还可以查看
hadoop集群添加namenode的步骤及常识

4.在运行过程中发现error:unmappable character for  encoding UTF8

由于java 程序不是utf8,所以在提交后不能解析的原因,将eclipse 编码设置成utf8:

3904620877030590311.png (84.32 KB, 下载次数: 1)

  

2014-3-5 22:35 上传

这里交给大家该如何修改:
通过Window-》preference

tanchu.png (19.31 KB, 下载次数: 1)

  

2014-3-5 23:34 上传

通过上上面操作,我们找到workspace,然后修改编码即可

code.png (92.21 KB, 下载次数: 1)

  

2014-3-5 23:31 上传

5. 用window 提交eclipse 任务发现不通过:

原因:本地用户administrator(本机windows用户)想要远程操作hadoop系统,没有权限引起的。

解决办法:
1、如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。(1.2.1 版本只有这个方法可行),如何操作可以参考第一个问题。

hdfstmp1.png (24.37 KB, 下载次数: 1)

  

2014-3-5 23:37 上传

2、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为启动hadoop的用户名即可
3 修改window 机器的用户名为 hadoop 用户名。
5. 1用eclipse 连接远程集群连接不上
1.除了防火墙
2.权限修改
3.ip需要设置为静态
4.检查集群是否开启

6. 运行过程中发现Java heap space OutOfMemory

修改 hadoop-env.sh 文件 将:export HADOOP_CLIENT_OPTS="-Xmx128m $HADOOP_CLIENT_OPTS"
改成:export HADOOP_CLIENT_OPTS="-Xmx2048m $HADOOP_CLIENT_OPTS"

7 eclipse 运行中发现 Name node is  in safe mode

1. org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /tmp/hadoop-SYSTEM/mapred/system. Name node is in safe mode.

2. The ratio of reported blocks 0.9412 has not reached the threshold 0.9990. Safe mode will be turned off automatically.

3. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.deleteInternal(FSNamesystem.java:1992)

4. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.delete(FSNamesystem.java:1972)

5. at org.apache.hadoop.hdfs.server.namenode.NameNode.delete(NameNode.java:792)

6. at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)

7. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

8. at java.lang.reflect.Method.invoke(Method.java:597)

9. at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)

10. at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)

11. at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)

12. at java.security.AccessController.doPrivileged(Native Method)

13. at javax.security.auth.Subject.doAs(Subject.java:396)

14. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1083)

15. at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

16.   :bin/hadoop dfsadmin -safemode leave (解除安全模式)

复制代码
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
safemode参数说明:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get -   返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。

解决方案:bin/hadoop dfsadmin -safemode leave

8. Invalid Hadoop Runtime specified; please click 'Configure Hadoop install directory' or fill in library location input
field

解决办法:eclipse window->preferences - > Map/Reduce  选择hadoop根目录

9. storage directory does not exist or is not accessible.

1. Bad connection to FS. command aborted. exception: Call to dp01-154954/192.168.13.134:9000 failed on connection exception: java.net.ConnectException: Connection refused: no further information

2. ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory D:\tmp\hadoop-SYSTEM\dfs\name is in an inconsistent

3. state: storage directory does not exist or is not accessible.

复制代码
重新格式化  bin/hadoop namenode -format  (小心不要拼错)

10 hbase

INFO org.apache.hadoop.hbase.util.FSUtils: Waiting for dfs to exit safe mode...
:bin/hadoop dfsadmin -safemode leave (解除安全模式)

11.win7下 ssh启动不了  错误:ssh: connect to host localhost port 22: Connection refused

输入windows 登录用户名

1347456851_5788.jpg (30.86 KB, 下载次数: 1)

  

2014-3-5 22:41 上传

1347456879_9365.jpg (36.15 KB, 下载次数: 1)

  

2014-3-5 22:41 上传

下一篇:

Hadoop常见错误问题及解决方法总结二

大数据系列相关文章:

最新评论
jiangsi2014-09-10 05:07:04
[Spark会是大数据的下一个大家伙?]Spark是一个高效的分布式计算系统,发源于美国加州大学伯克利分校AMPLab的集群计算平台。 相比Hadoop MapReduce,Spark在性能上要高100倍,而且Spark提供了比Hadoop更上层的API,同样的算法在Spark中实现往往只有Hadoop的1/10或者1/100长度。 http://t.cn/8scjo8h
老帅哥2014-09-09 04:45:56
jdk版本没问题
情员2014-09-08 04:17:35
job 复杂度多少
believe2014-09-07 11:51:43
@Henry.Wen 755?
达人磊磊2014-09-07 07:23:36
需求大数据工程师,工作地点广州
出版人杨海玲2014-09-06 08:13:42
pig执行mapreduce模式需要指定hadoop集群,可设置的方法1)在环境变量中export PIG_CLASSPATH=$HADOOP_HOME/etc/hadoop或者在$PIG_HOME/conf/pig.propertites文件中添加fs.default.name=hdfs://localhost:9000 和mapred.job.tracker=localhost:9001来指向Namenode和Jobtracker
情员2014-09-06 06:37:50
动不动就2-3w map的任务 明天都在很多地方运行着。
h黑糊糊p2014-09-06 01:45:36
spark、storm、hadoop这些诱人的技术和大数据变革带来的机遇,让自己计IOS后,又一次有离职学习深造的冲动,纠结中。。。
风飞凡2014-09-06 01:12:28
操作系统级别对Hadoop性能优化 - 过往记忆 http://t.cn/8sJbvAl
最终的释怀2014-09-05 05:37:08
#NLP Job#搜狐大数据中心直招Hadoop工程师http://t.cn/RPbctaZ
 
  • Hadoop生态系统资料推荐