Hadoop FileSystem закрытое исключение при выполнении BufferedReader.close ()
Из метода настройки 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);
Я читаю содержимое из bufferedReader и после того, как все чтение завершено, я закрываю его.
Это кусок кода, который читает его
String line;
while ((line = reader.readLine()) != null) {
// Do something
}
Это кусок кода, который закрывает читателя.
if (bufferedReader != null) {
bufferedReader.close();
}
Это трассировка стека для исключения, которое происходит, когда я делаюbufferedReader.close()
.
I, [2013-11-18T04: 56: 51.601135 # 25683] ИНФОРМАЦИЯ -: try_201310111840_142285_r_000009_0: at org.apache.hadoop.hdfs.DFSClient.checkOpen (DFSClient.java:565)
I, [2013-11-18T04: 56: 51.601168 # 25683] ИНФОРМАЦИЯ -: try_201310111840_142285_r_000009_0: at org.apache.hadoop.hdfs.DFSInputStream.close (DFSInputStream.java:522)
I, [2013-11-18T04: 56: 51.601199 # 25683] ИНФОРМАЦИЯ -: try_201310111840_142285_r_000009_0: at java.io.FilterInputStream.close (FilterInputStream.java:155)
I, [2013-11-18T04: 56: 51.601230 # 25683] ИНФОРМАЦИЯ -: try_201310111840_142285_r_000009_0: at sun.nio.cs.StreamDecoder.implClose (StreamDecoder.java:358)
I, [2013-11-18T04: 56: 51.601263 # 25683] ИНФОРМАЦИЯ -: try_201310111840_142285_r_000009_0: at sun.nio.cs.StreamDecoder.close (StreamDecoder.java:173)
I, [2013-11-18T04: 56: 51.601356 # 25683] ИНФОРМАЦИЯ -: try_201310111840_142285_r_000009_0: at java.io.InputStreamReader.close (InputStreamReader.java:182)
I, [2013-11-18T04: 56: 51.601395 # 25683] ИНФОРМАЦИЯ -: try_201310111840_142285_r_000009_0: at java.io.BufferedReader.close (BufferedReader.java:497)
Я не уверен, почему это исключение происходит. Это не многопоточность, поэтому я не ожидаю какого-либо состояния гонки. Можете ли вы помочь мне понять.
Спасибо,
Venk