Hi Raghu,
I checked RawLocalFileSystem.java and there is a class
LocalFSFileOutputStream in it, which both implements flush() and sync()
as far as I can see. I did not yet look into much detail but for me that
seems not to be the problem here. Could you confirm?
thanks,
Christoph
Raghu Angadi schrieb:
>
> Hmm.. neither of these filesystems seems to implement flush(). Can you
> file a jira on it?
>
> HDFS implements sync() and data should be on the disk after that, but
> might not be able available to a reader yet. How did you test if it
> data is on the disk?
>
> Raghu.
>
> Christoph Graf wrote:
>> Hi everybody,
>>
>>
>> I have a simple test case which creates a file, writes two lines into
>> the FSDataOutputStream and then flushes, syncs and closes the stream. I
>> am using hadoop 0.18.0 with cygwin.
>>
>> What I observe (in contrast of using java.io.DataOutputStream) is that
>> the lines get written to the disk only after close() was executed. This
>> behaviour is true for the local filesystem as well as hdfs.
>>
>> Can you point me to my mistake?
>>
>> thanks,
>>
>>
>> Christoph
>>
>>
>>
>> final String PATH = "file:///C:/tmp/test.txt";
>> Configuration conf = new Configuration();
>> conf.set("fs.default.name", PATH);
>> FileSystem fs = FileSystem.get(conf);
>> FSDataOutputStream out = fs.create(new Path(PATH),
>> true);
>> out.writeBytes("Test line 1 \n");
>> out.writeBytes("Test line 2 \n");
>> out.flush();
>> out.sync();
>> out.close();
>