[分享] Hadoop常见问题_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 558 | 回复: 0   主题: [分享] Hadoop常见问题        上一篇   下一篇 
zhou
注册用户
等级:中校
经验:2210
发帖:125
精华:6
注册:2012-11-19
状态:离线
发送短消息息给zhou 加好友    发送短消息息给zhou 发消息
发表于: IP:您无权察看 2016-4-14 15:21:39 | [全部帖] [楼主帖] 楼主

1:safemode

bin/hadoop fs -put ./input input

put: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/input. Name node is in safe mode.

hadoop dfsadmin -safemode leave

解决方法:
 

NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例(1-dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。
 
dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS启动的时候,如果DataNode上报的block个数达到了 元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1则HDFS永远是处于SafeMode。
 
下面这行摘录自NameNode启动时的日志(block上报比例1达到了阀值0.9990)
 
The ratio of reported blocks 1.0000 has reached the threshold 0.9990. Safe mode will be turned off automatically in 18 seconds.
 

有两个方法离开这种安全模式
 

(1)修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999。
 
(2)hadoop dfsadmin -safemode leave命令强制离开

用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
 
enter - 进入安全模式
 
leave - 强制NameNode离开安全模式
 get - 返回安全模式是否开启的信息
 wait - 等待,一直到安全模式结束。

2.在执行计算任务的时候抛出ShuffleError异常,信息如下:

org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#5

at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:124)

at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:362)

at org.apache.hadoop.mapred.Child$4.run(Child.java:217)

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

at javax.security.auth.Subject.doAs(Subject.java:416)

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

at org.apache.hadoop.mapred.Child.main(Child.java:211)

Caused by: java.io.IOException: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

at org.apache.hadoop.mapreduce.task.reduce.ShuffleScheduler.checkReducerHealth(ShuffleScheduler.java:253)

at org.apache.hadoop.mapreduce.task.reduce.ShuffleScheduler.copyFailed(ShuffleScheduler.java:187)

at org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyFromHost(Fetcher.java:227)

at org.apache.hadoop.mapreduce.task.reduce.Fetcher.run(Fetcher.java:149)

解决方式:

问题出在hosts文件的配置上,在所有节点的/etc/hosts文件中加入其他节点的主机名和IP映射。如下:

192.168.137.10  name-node

192.168.137.11  node-1

192.168.137.12  node-2

192.168.137.13  node-3

192.168.137.14  node-4

192.168.137.15  node-5

 

3:hadoop出现了一些问题。用$ bin/hadoop dfsadmin -report 测试的时候,发现dfs没有加载。 

显示如下: 
  Configured Capacity: (0 KB)  Present Capacity: (0 KB)    DFS Remaining: (0 KB)   DFS Used: (0 KB)          DFS Used%: ?% 
  Under replicated blocks: 
  Blocks with corrupt replicas:          Missing blocks:          

查看日志: 
   ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: 
   java.io.IOException: Incompatible namespaceIDs in /home/hadoop/data: 

   namenode namespaceID 2033006627; datanode namespaceID 1589898341 
   经分析,是由于namenode namespaceID 2033006627;datanode namespaceID 1589898341 

   一致造成原因。 
   修改了namenode namespaceID 1589898341 可以使用,但是重启之后,又不可以用了。 

  最后解决方案:删除hadoop用户下的name文件夹,data文件夹,tmp文件夹,temp文件里的内

  容,然后重新执行namenode命令。 重启电脑之后,正常。 
4:File /home/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to nodes, instead of 1

 出现此错误,一般发生在datanode与namenode还没有进行连接,就开始往hdfs系统上put数据了。稍等待一会,就可以了。 
也可以使用:hadoop dfsadmin –report命令查看集群的状态。 

5:每次启动总有部分datanade不能去全部启动,查看日志文件,显示为:  ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: 
java.net.UnknownHostException: zgchen-ubutun: zgchen-ubutun at java.net.InetAddress.getLocalHost(InetAddress.java:1426)。  

 

分析:这是由于datanode 找不到服务host引起的。 
解决:通过查找/etc/hostname 找到hostname;比如:ubuntu。 然后找到/etc/hosts ,添加:127.0.1.1 ubuntu 
6:java.lang.OutOfMemoryError: GC overhead limit exceeded

分析:这个是JDK6新添的错误类型。是发生在GC占用大量时间为释放很小空间的时候发生的,是一种保护机制。

解决方案是,关闭该功能,可以添加JVM的启动参数来限制使用内存: -XX:-UseGCOverheadLimit  
添加位置是:mapred-site.xml 里新增项:mapred.child.java.opts 内容:-XX:-

UseGCOverheadLimit 
java.lang.OutOfMemoryError: Java heap space  
出现这种异常,明显是jvm内存不够得原因,要修改所有的datanode的jvm内存大小。  
Java -Xms1024m -Xmx4096m  
一般jvm的最大内存使用应该为总内存大小的一半,我们使用的8G内存,所以设置为4096m,这一值可能依旧不是最优的值。(其实对于最好设置为真实物理内存大小的0.8) 
错误6:Too many fetch-failures  

Answer:  
出现这个问题主要是结点间的连通不够全面。

1) 检查 、/etc/hosts  
   要求本机ip 对应 服务器名  
   要求要包含所有的服务器ip 服务器名 

2) 检查 .ssh/authorized_keys  
   要求包含所有服务器(包括其自身)的public key  


7:处理速度特别的慢 出现map很快 但是reduce很慢 而且反复出现 reduce=0%  

Answer:  结合第二点,然后修改可用内存大小。 
conf/hadoop-env.sh 中的export HADOOP_HEAPSIZE=4000  
8:能够启动datanode,但无法访问,也无法结束的错误  
重新格式化一个新的分布式文件时,需要将你NameNode上所配置的
dfs.name.dir这一namenode用来存放NameNode 持久存储名字空间及事务日志的本地文件系统路径删除,同时将各DataNode上的dfs.data.dir的路径 DataNode 存放块数据的本地文件系统路径的目录也删除。如本此配置就是在NameNode上删除/home/hadoop/NameData,在DataNode上删除
/home/hadoop/DataNode1和/home/hadoop/DataNode2。

这是因为Hadoop在格式化一个新的分布式文件系统时,每个存储的名字空间都对应了建立时间的那个版本(可以查看/home/hadoop /NameData/current目录下的VERSION文件,上面记录了版本信息),在重新格式化新的分布式系统文件时,最好先删除NameData 
目录。必须删除各DataNode的dfs.data.dir。这样才可以使namedode和datanode记录的信息版本对应。  
注意:删除是个很危险的动作,不能确认的情况下不能删除!!做好删除的文件等通通备份!!  
错误9:java.io.IOException: Could not obtain block: blk_194219614024901469_1100 
file=/user/hive/warehouse/src_20100924_log/src_20100924_log  出现这种情况大多是结点断了,没有连接上。或者 
mapred.tasktracker.map.tasks.maximum 的设置 超过 cpu cores数目,导致出现获取不到文件。 
 
10 Task Id attempt_201010291615_0001_m_000234_0, Status FAILED Error: java.io.IOException: No space left on device 
  Task Id attempt_201010291615_0001_m_000240_0, Status FAILED java.io.IOException: Spill failed 
  磁盘空间不够,应该分析磁盘空间df -h 检查是否还存在磁盘空间。

 错误11:Task Id attempt_201011011336_0007_m_000001_0, Status FAILED org.apache.hadoop.hbase.client.RegionOfflineException: region offline: lm,,1288597709144   网上说,将/hbase删除;重启hbase后,可以正常应用了。但是我找不到/hbase目录,只好自己重新删除掉一些hadoop文件,重新生成文件管理系统。 
  还有一个可能是,配置错了/hbase/conf/hbase-env.sh的HBASE_CLASSPATH,这个默认是不配置的,所以可以不配置。 
错误12:org.apache.hadoop.hbase.TableNotFoundException: org.apache.hadoop.hbase.TableNotFoundException: lm 
 找不到表,hbase启动了,检查一下是否存在需要的Htable。 





赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论