hadoop常见错误

错误1:bin/hadoop dfs 不能正常启动,持续提示:
INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 0 time(s).
原因:由于 dfs 的部分文件默认保存在tmp文件夹,在系统重启时被删除。
解决:修改core-site.xml 的 hadoop.tmp.dir配置文件路径:/home/hadoop/tmp。

 

错误2:hadoop出现了一些问题。用$ bin/hadoop dfsadmin -report 测试的时候,发现dfs没有加载。
显示如下:
         Configured Capacity: 0 (0 KB)
         Present Capacity: 0 (0 KB)
         DFS Remaining: 0 (0 KB)
         DFS Used: 0 (0 KB)
         DFS Used%: ?%
         Under replicated blocks: 0
         Blocks with corrupt replicas: 0
         Missing blocks: 0
         查看日志:
         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命令。
重启电脑之后,正常。

 

错误3:File /home/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
出现此错误,一般发生在datanode与namenode还没有进行连接,就开始往hdfs系统上put数据了。稍等待一会,就可以了。
也可以使用:hadoop dfsadmin –report命令查看集群的状态。

 

错误4:每次启动总有部分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

 

错误5: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。

 

错误13:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out
Answer:
程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
修改办法:在以上两个文件里
/etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 102400
* hard nofile 409600

$cd /etc/pam.d/
$sudo vi login
添加 session    required     /lib/security/pam_limits.so

错误14:Too many fetch-failures
Answer:
出现这个问题主要是结点间的连通不够全面。
1) 检查 、/etc/hosts
   要求本机ip 对应服务器名
   要求要包含所有的服务器ip + 服务器名
2) 检查 .ssh/authorized_keys
   要求包含所有服务器(包括其自身)的public key

错误15:处理速度特别的慢 出现map很快 但是reduce很慢 而且反复出现 reduce=0%
Answer:
结合第二点,然后
修改 conf/hadoop-env.sh 中的export HADOOP_HEAPSIZE=4000

错误16:能够启动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记录的信息版本对应。
注意:删除是个很危险的动作,不能确认的情况下不能删除!!做好删除的文件等通通备份!!

错误17:java.io.IOException: Could not obtain block: blk_194219614024901469_1100 file=/user/hive/warehouse/src_20090724_log/src_20090724_log
出现这种情况大多是结点断了,没有连接上。

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


错误19:出现map%,但是呢reduce到98%左右的时候呢,就直接进failedjobs了
解决办法:
检查mapred.map.tasks是不是设置的太多了,设置太多的话会导致处理大量的小文件
检查mapred.reduce.parallel.copies是否设置合适。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Hadoop时,可能会遇到以下一些常见问题: 1. Hadoop集群的配置和部署:在构建Hadoop集群时,可能会遇到配置和部署问题,例如节点的添加、网络设置和安全性配置等。 2. 数据丢失或损坏:在数据处理过程中,可能会发生数据丢失或损坏的情况。这可能是由于硬件故障、网络问题或错误的数据处理操作引起的。 3. 任务调度和资源管理:Hadoop使用了YARN(Yet Another Resource Negotiator)来进行任务调度和资源管理。在配置和使用YARN时,可能会遇到问题,例如任务队列管理、资源限制和优先级等。 4. 性能调优:在处理大规模数据时,性能问题可能成为一个挑战。可能需要进行性能调优,例如调整数据块大小、优化数据压缩和并行度设置等。 5. 安全性和权限控制:Hadoop提供了一些安全性和权限控制机制,如Kerberos认证和访问控制列表(ACL)。在配置和使用这些机制时,可能会遇到问题,例如配置错误、权限不足或用户认证失败等。 6. 日志和故障排查:当Hadoop集群发生故障或出现错误时,查看日志文件是一种常见的排查方法。但是,理解和分析日志可能会具有挑战性,特别是在大规模集群和复杂的应用程序中。 这些是使用Hadoop常见的问题,但每个问题的具体解决方案可能会因环境和应用场景而异。为了解决这些问题,可以查阅Hadoop官方文档、在线论坛或咨询专业人士的意见。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值