hdfs在寫入的過程中,只有完全寫入整個文件的內(nèi)容之后,對其他client才會可見,否則在寫入的過程中是不可見。如果想要立即可見,就需要一致性flush 的操作。
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)喀什,10余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
代碼例子:
@Test
public void writeFile() throws Exception{
// 1 創(chuàng)建配置信息對象
Configuration configuration = new Configuration();
fs = FileSystem.get(configuration);
// 2 創(chuàng)建文件輸出流
Path path = new Path("F:\\date\\H.txt");
FSDataOutputStream fos = fs.create(path);
// 3 寫數(shù)據(jù)
fos.write("hello Andy".getBytes());
// 4 一致性刷新
fos.hflush();
fos.close();
}
方法很簡單,就是調(diào)用輸出流的 hflush() 方法,刷寫client的緩沖區(qū),讓其他client立即可以看到寫入的內(nèi)容。一般在并發(fā)讀寫的情況下,要求多個client的數(shù)據(jù)都是一致,就會要求這點。