• hadoop java.nio.channels.ClosedChannelException


    今天在跑一个任务的时候,报错java.nio.channels.ClosedChannelException。

    INFO mapreduce.Job: Task Id : attempt_1521014335754_1262_r_000000_2, Status : FAILED
    Error: java.nio.channels.ClosedChannelException
    at org.apache.hadoop.hdfs.DataStreamer$LastExceptionInStreamer.throwException4Close(DataStreamer.java:324)
    at org.apache.hadoop.hdfs.DFSOutputStream.checkClosed(DFSOutputStream.java:153)
    at org.apache.hadoop.fs.FSOutputSummer.write(FSOutputSummer.java:105)
    at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:58)
    at java.io.DataOutputStream.write(DataOutputStream.java:107)

    报错的位置在代码context.write(outkey, outVal);这行。

    原因是我该reducer的setup的时候,调用了HDFS文件系统去读一个文件(虽然很少有这么用的),读完之后,fs.close();

    我在想,一个setup中关闭一个DHFS的FileSystem对象,尽然会影响到context.write();

    //TODO 有空了看下源码,找找什么情况之后再补充这个帖子。

  • 相关阅读:
    网络编程
    C 语言 const
    C 语言 链表
    C 语言 按位计算
    C 语言 格式化输出输入
    C 语言 结构类型 联合
    C 语言 结构类型 结构
    C 语言 结构类型 枚举
    bash shell configuration
    sed usage
  • 原文地址:https://www.cnblogs.com/yanghaolie/p/8866883.html
Copyright © 2020-2023  润新知