我有一个文件,其中包含像“向量”Java序列化对象。我通过Hadoop分布式文件系统(HDFS)存储了这个文件。现在我打算在其中一个map任务中读取此文件(使用方法readObject)。我想FileInputStream为通用文件系统
FileInputStream in = new FileInputStream("hdfs/path/to/file");
不会因为文件存储在HDFS上而工作。所以我想使用org.apache.hadoop.fs.FileSystem类。但不幸的是,它没有任何返回FileInputStream的方法。它只是一个返回FSDataInputStream的方法,但我想要一个可以从文件中读取像vector一样的序列化java对象的输入流,而不仅仅是FSDataInputStream会执行的基本数据类型。
请帮忙!
大,是工作!谢谢 – Akhil 2010-05-15 15:11:54
使用CDH5会导致错误。 'fcont = hfs.FileContext.getFileContext(); f = fcont.open(hfs.Path('/ tmp/test.txt')); ois = java.io.ObjectInputStream(f); ' java.io.StreamCorruptedException:java.io.StreamCorruptedException:无效的流标题:6C6F6700 – Andor 2014-04-16 10:06:58
@Andor:我已经得到相同的异常,并且一直试图找出一个解决方案,因为几天没有任何运气。你是否能够找出问题所在? – Aditya 2014-04-20 22:58:06