将一个文件Map后输出多个文件,同名的在一个文件里。输入文件有20多兆,分出几千个小段(尽管最后输出的文件就10来个左右)。如果hdfs的文件块大小是64M,那么程序运行结果产生如下异常:
java.io.EOFException
at java.io.DataInputStream.readShort(DataInputStream.java:298)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.createBlockOutputStream(DFSClient.java:3060)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:2983)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2000(DFSClient.java:2255)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2446)
但如果把文件块的大小改成500KB,那就能成功运行,哪位大神能说说这是咋回事儿?不胜感激