MapReduce任务出现的异常

the_gunner 2014-07-11 04:40:42
节点硬件升级后,Mapreduce任务出现异常
以前未出现过,求原因

以下是某个datanode的日志

2014-07-11 16:16:44,309 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exception for BP-2107977179-192.168.85.128-1402023732925:blk_1073776737_40335
java.io.IOException: Premature EOF from inputStream
at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:194)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:435)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:693)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:569)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:115)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:68)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:221)
at java.lang.Thread.run(Thread.java:662)
2014-07-11 16:16:44,309 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: PacketResponder: BP-2107977179-192.168.85.128-1402023732925:blk_1073776737_40335, type=HAS_DOWNSTREAM_IN_PIPELINE
java.io.EOFException: Premature EOF: no length prefix available
at org.apache.hadoop.hdfs.protocolPB.PBHelper.vintPrefixed(PBHelper.java:1492)
at org.apache.hadoop.hdfs.protocol.datatransfer.PipelineAck.readFields(PipelineAck.java:116)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver$PacketResponder.run(BlockReceiver.java:950)
at java.lang.Thread.run(Thread.java:662)
2014-07-11 16:16:44,310 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: PacketResponder: BP-2107977179-192.168.85.128-1402023732925:blk_1073776737_40335, type=HAS_DOWNSTREAM_IN_PIPELINE: Thread is interrupted.
2014-07-11 16:16:44,310 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: PacketResponder: BP-2107977179-192.168.85.128-1402023732925:blk_1073776737_40335, type=HAS_DOWNSTREAM_IN_PIPELINE terminating
2014-07-11 16:16:44,310 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: opWriteBlock BP-2107977179-192.168.85.128-1402023732925:blk_1073776737_40335 received exception java.io.IOException: Premature EOF from inputStream
2014-07-11 16:16:44,310 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: u07:51020:DataXceiver error processing WRITE_BLOCK operation src: /192.168.85.133:43622 dest: /192.168.85.134:51020
java.io.IOException: Premature EOF from inputStream
at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:194)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:435)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:693)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:569)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:115)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:68)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:221)
at java.lang.Thread.run(Thread.java:662)


2014-07-11 16:17:44,399 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exception for BP-2107977179-192.168.85.128-1402023732925:blk_1073776737_40350
java.net.SocketTimeoutException: 60000 millis timeout while waiting for channel to be ready for read. ch : java.nio.channels.SocketChannel[connected local=/192.168.85.134:51020 remote=/192.168.85.133:43636]
at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:164)
at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161)
at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at java.io.DataInputStream.read(DataInputStream.java:132)
at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:192)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doReadFully(PacketReceiver.java:213)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.doRead(PacketReceiver.java:134)
at org.apache.hadoop.hdfs.protocol.datatransfer.PacketReceiver.receiveNextPacket(PacketReceiver.java:109)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receivePacket(BlockReceiver.java:435)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver.receiveBlock(BlockReceiver.java:693)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:569)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.opWriteBlock(Receiver.java:115)
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.processOp(Receiver.java:68)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:221)
at java.lang.Thread.run(Thread.java:662)
2014-07-11 16:17:44,401 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: IOException in BlockReceiver.run():
java.io.InterruptedIOException: Interruped while waiting for IO on channel java.nio.channels.SocketChannel[connected local=/192.168.85.134:51020 remote=/192.168.85.133:43636]. 479997 millis timeout left.
at org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:352)
at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157)
at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:159)
at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:117)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver$PacketResponder.run(BlockReceiver.java:1079)
at java.lang.Thread.run(Thread.java:662)
2014-07-11 16:17:44,402 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: checkDiskError: exception:
java.io.InterruptedIOException: Interruped while waiting for IO on channel java.nio.channels.SocketChannel[connected local=/192.168.85.134:51020 remote=/192.168.85.133:43636]. 479997 millis timeout left.
at org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:352)
at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157)
at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:159)
at org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:117)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.DataOutputStream.flush(DataOutputStream.java:106)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver$PacketResponder.run(BlockReceiver.java:1079)
at java.lang.Thread.run(Thread.java:662)

...全文
5603 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
12345上山打 2016-12-15
  • 打赏
  • 举报
回复
丢~有没有解决办法啊
young-ming 2015-11-27
  • 打赏
  • 举报
回复
谁解决了这个问题吗?我也遇到了。
水的只能学 2015-11-09
  • 打赏
  • 举报
回复
重新均衡一下试试
jaypaipai 2015-10-20
  • 打赏
  • 举报
回复
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>8192</value>
</property>
配置hdfs-site.xml
X345885864 2014-11-06
  • 打赏
  • 举报
回复
这个问题有解决吗,楼主。。。
suncf1985 2014-09-26
  • 打赏
  • 举报
回复
看一下,输入的文件编码.utf-8 无 bom编码方式
suncf1985 2014-09-26
  • 打赏
  • 举报
回复
Premature EOF from inputStream
fansinating_qi 2014-09-24
  • 打赏
  • 举报
回复
你好,我也遇到那个Mapreduce ,premature EOF from InputStream IO问题了,看日志是在执行write_block的时候,你现在解决了吗?如何解决的?谢谢。
weitao1234 2014-07-18
  • 打赏
  • 举报
回复
引用 5 楼 the_gunner 的回复:
[quote=引用 4 楼 the_gunner 的回复:] [quote=引用 3 楼 weitao1234 的回复:] [quote=引用 2 楼 the_gunner 的回复:] [quote=引用 1 楼 weitao1234 的回复:] 增加的节点与所有的节点是否可以互相访问。
通过ssh互相可以连接的,在namenode管理页面也没有发现有HDFS的任何节点存在不能访问的问题(无死结点)[/quote] 实在不行,可以重启下master,应该是通讯时异常。[/quote] 我也这么觉得,可能是自己集群内部网络的问题?[/quote] 重启不管用。。。[/quote] 增加的结点ip,在配置文件当中都增加了吧?
the_gunner 2014-07-18
  • 打赏
  • 举报
回复
引用 4 楼 the_gunner 的回复:
[quote=引用 3 楼 weitao1234 的回复:] [quote=引用 2 楼 the_gunner 的回复:] [quote=引用 1 楼 weitao1234 的回复:] 增加的节点与所有的节点是否可以互相访问。
通过ssh互相可以连接的,在namenode管理页面也没有发现有HDFS的任何节点存在不能访问的问题(无死结点)[/quote] 实在不行,可以重启下master,应该是通讯时异常。[/quote] 我也这么觉得,可能是自己集群内部网络的问题?[/quote] 重启不管用。。。
the_gunner 2014-07-18
  • 打赏
  • 举报
回复
引用 3 楼 weitao1234 的回复:
[quote=引用 2 楼 the_gunner 的回复:] [quote=引用 1 楼 weitao1234 的回复:] 增加的节点与所有的节点是否可以互相访问。
通过ssh互相可以连接的,在namenode管理页面也没有发现有HDFS的任何节点存在不能访问的问题(无死结点)[/quote] 实在不行,可以重启下master,应该是通讯时异常。[/quote] 我也这么觉得,可能是自己集群内部网络的问题?
weitao1234 2014-07-16
  • 打赏
  • 举报
回复
引用 2 楼 the_gunner 的回复:
[quote=引用 1 楼 weitao1234 的回复:] 增加的节点与所有的节点是否可以互相访问。
通过ssh互相可以连接的,在namenode管理页面也没有发现有HDFS的任何节点存在不能访问的问题(无死结点)[/quote] 实在不行,可以重启下master,应该是通讯时异常。
the_gunner 2014-07-14
  • 打赏
  • 举报
回复
引用 1 楼 weitao1234 的回复:
增加的节点与所有的节点是否可以互相访问。
通过ssh互相可以连接的,在namenode管理页面也没有发现有HDFS的任何节点存在不能访问的问题(无死结点)
weitao1234 2014-07-12
  • 打赏
  • 举报
回复
增加的节点与所有的节点是否可以互相访问。
前言 致谢 关于本书 第1 部分 背景和基本原理 1 跳跃中的Hadoop 1.1 什么是Hadoop 1.1.1 Hadoop 的核心组件 1.1.2 Hadoop 生态圈 1.1.3 物理架构 1.1.4 谁在使用Hadoop 1.1.5 Hadoop 的局限性 1.2 运行Hadoop 1.2.1 下载并安装Hadoop 1.2.2 Hadoop 的配置 1.2.3 CLI 基本命令 1.2.4 运行MapReduce 作业 1.3 本章小结 第2 部分 数据逻辑. 2 将数据导入导出Hadoop. 2.1 导入导出的关键要素 2.2 将数据导入Hadoop . 2.2.1 将日志文件导入Hadoop 技术点1 使用Flume 将系统日志文件导入HDFS 2.2.2 导入导出半结构化和二进制文件 技术点2 自动复制文件到HDFS 的机制 技术点3 使用Oozie 定期执行数据导入活动 2.2.3 从数据库中拉数据 技术点4 使用MapReduce 将数据导入数据库 技术点5 使用Sqoop 从MySQL 导入数据 2.2.4 HBase 技术点6 HBase 导入HDFS 技术点7 将HBase 作为MapReduce 的数据源 2.3 将数据导出Hadoop 2.3.1 将数据导入本地文件系统 技术点8 自动复制HDFS 中的文件 2.3.2 数据库 技术点9 使用Sqoop 将数据导入MySQL 2.3.3 Hbase 技术点10 将数据从HDFS 导入HBase 技术点11 使用HBase 作为MapReduce 的数据接收器 2.4 本章小结 3 数据序列化――处理文本文件及其他格式的文件 3.1 了解MapReduce 中的输入和输出 3.1.1 数据输入 3.1.2 数据输出 3.2 处理常见的序列化格式 3.2.1 XML . 技术点12 MapReduce 和XML 3.2.2 JSON . 技术点13 MapReduce 和JSON . 3.3 大数据的序列化格式 3.3.1 比较SequenceFiles、Protocol Buffers、Thrift 和 Avro 3.3.2 Sequence File 技术点14 处理SequenceFile 3.3.3 Protocol Buffers 技术点15 整合Protocol Buffers 和MapReduce . 3.3.4 Thrift . 技术点16 使用Thrift 3.3.5 Avro 技术点17 MapReduce 的下一代数据序列化技术 3.4 自定义文件格式 3.4.1 输入输出格式 技术点18 输入和输出格式为CSV 的文件 3.4.2 output committing 的重要性 3.5 本章小结 第3 部分 大数据模式 4 处理大数据的MapReduce 模式 4.1 Join 4.1.1 Repartition Join 技术点19 优化repartition join 4.1.2 Replicated Join 4.1.3 Semi-join 技术点20 实现semi-join 4.1.4 为你的数据挑选最优的合并策略 4.2 排序 4.2.1 二次排序 技术点21 二次排序的实现 4.2.2 整体并行排序 技术点22 通过多个reducer 对key 进行排序 4.3 抽样 技术点23 蓄水池抽样(reservoir 抽样) 4.4 本章小结 5 优化HDFS 处理大数据的技术 5.1 处理小文件 技术点24 使用Avro 存储大量小文件 5.2 通过压缩提高数据存储效率 技术点25 选择合适的压缩解码器 技术点26 在HDFS、MapReduce、Pig 和Hive 中使用数据压缩 技术点27 在MapReduce、Hive 和Pig 中处理可分割的LZOP 5.3 本章小结 6 诊断和优化性能问题 6.1 衡量MapReduce 和你的环境 6.1.1 提取作业统计信息的工具 6.1.2 监控 6.2 确定性能问题的原因 6.2.1 了解哪些因素会影响MapReduce 作业的性能 6.2.2 map 端异常 技术点28 发现输入数据中的坑 技术点29 确定map 端数据倾斜问题 技术点30 判定map 任务吞吐量 技术点31 小文件 技术点32 不可切割的文件 6.2.3 reduce 端问题 技术点33 reducer 任务数过大或过小 . 技术点34 定位reduce 端数据倾斜问题 技术点35 确定reduce 任务是否存在整体吞吐量过低 技术点36 缓慢的洗牌(shuffle)和排序 . 6.2.4 任务的一般性能问题 技术点37 作业竞争和调度器限制 技术点

20,811

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧