相关疑难解决方法(0)

在执行BufferedReader.close()时Hadoop FileSystem关闭了异常

在Reduce设置方法中,我试图关闭一个BufferedReader对象并获得一个FileSystem封闭的异常.它不会一直发生.这是我用来创建的代码片段BufferedReader.

    String fileName = <some HDFS file path>
    Configuration conf = new Configuration();
    FileSystem fs = FileSystem.get(conf);
    Path hdfsPath = new Path(filename);
    FSDataInputStream in = fs.open(hdfsPath);
    InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
Run Code Online (Sandbox Code Playgroud)

我从bufferedReader读取内容,一旦完成所有读取,我就关闭它.

这是读取它的代码段

String line;
while ((line = reader.readLine()) != null) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

这段关闭读者的代码.

    if (bufferedReader != null) {
        bufferedReader.close();
    }
Run Code Online (Sandbox Code Playgroud)

这是我执行时发生的异常的堆栈跟踪bufferedReader.close().

我,[2013-11-18T04:56:51.601135#25683]信息 - :attempt_201310111840_142285_r_000009_0:at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:565)

我,[2013-11-18T04:56:51.601168#25683]信息 - :attempt_201310111840_142285_r_000009_0:at org.apache.hadoop.hdfs.DFSInputStream.close(DFSInputStream.java:522)

I,[2013-11-18T04:56:51.601199#25683] INFO - :attempt_201310111840_142285_r_000009_0:at …

java hadoop mapreduce hdfs

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

hadoop ×1

hdfs ×1

java ×1

mapreduce ×1