内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Hadoop之HDFS之一致性模型-創(chuàng)新互聯(lián)

HDFS某些地方為了性能可能會不符合POSIX(是的,你沒有看錯,POSIX不僅僅只適用于linux/unix,Hadoop 使用了POSIX的設計來實現(xiàn)對文件系統(tǒng)文件流的讀取),所以它看起來可能與你所期望的不同,要注意。
    創(chuàng)建了一個文件以后,它是可以在命名空間(namespace)中可以看到的:

創(chuàng)新互聯(lián)公司主打移動網(wǎng)站、做網(wǎng)站、成都做網(wǎng)站、網(wǎng)站改版、網(wǎng)絡推廣、網(wǎng)站維護、申請域名、等互聯(lián)網(wǎng)信息服務,為各行業(yè)提供服務。在技術實力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務,根據(jù)網(wǎng)站的內(nèi)容與功能再決定采用什么樣的設計。最后,要實現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設計,我們還會規(guī)劃穩(wěn)定安全的技術方案做保障。
Path p = new Path("p");
fs.create(p);
assertThat(fs.exists(p), is(true));

    但是任何向此文件中寫入的數(shù)據(jù)并不能保證是可見的,即使你flush了已經(jīng)寫入的數(shù)據(jù),此文件的長度可能仍然為零:

Path p = new Path("p");
OutputStream out = fs.create(p);
out.write("content".getBytes("UTF-8"));
out.flush();
assertThat(fs.getFileStatus(p).getLen(), is(0L));

這是因為,在Hadoop中,只有滿一個block數(shù)據(jù)量的數(shù)據(jù)被寫入文件后,此文件中的內(nèi)容才是可見的(即這些數(shù)據(jù)會被寫入到硬盤中去),所以當前正在寫的block中的內(nèi)容總是不可見的。
Hadoop提供了一種強制使buffer中的內(nèi)容沖洗到datanode的方法,那就是FSDataOutputStream的sync()方法。調(diào)用了sync()方法后,Hadoop保證所有已經(jīng)被寫入的數(shù)據(jù)都被沖洗到了管道線中的datanode中,并且對所有讀者都可見了:

Path p = new Path("p");
FSDataOutputStream out = fs.create(p);
out.write("content".getBytes("UTF-8"));
out.flush();
out.sync();
assertThat(fs.getFileStatus(p).getLen(), is(((long) "content".length())));

這個方法就像POSIX中的fsync系統(tǒng)調(diào)用(它沖洗給定文件描述符中的所有緩沖數(shù)據(jù)到磁盤中)。例如,使用java API寫一個本地文件,我們可以保證在調(diào)用flush()和同步化后可以看到已寫入的內(nèi)容:

FileOutputStream out = new FileOutputStream(localFile);
out.write("content".getBytes("UTF-8"));
out.flush(); // flush to operating system
out.getFD().sync(); // sync to disk(getFD()返回與該流所對應的文件描述符)
assertThat(localFile.length(), is(((long) "content".length())));

在HDFS中關閉一個流隱式的調(diào)用了sync()方法:

Path p = new Path("p");
OutputStream out = fs.create(p);
out.write("content".getBytes("UTF-8"));
out.close();
assertThat(fs.getFileStatus(p).getLen(), is(((long) "content".length())));

由于Hadoop中的一致性模型限制,如果我們不調(diào)用sync()方法的話,我們很可能會丟失多大一個block的數(shù)據(jù)。這是難以接受的,所以我們應該使用sync()方法來確保數(shù)據(jù)已經(jīng)寫入磁盤。但頻繁調(diào)用sync()方法也是不好的,因為會造成很多額外開銷。我們可以再寫入一定量數(shù)據(jù)后調(diào)用sync()方法一次,至于這個具體的數(shù)據(jù)量大小就要根據(jù)你的應用程序而定了,在不影響你的應用程序的性能的情況下,這個數(shù)據(jù)量應越大越好。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站題目:Hadoop之HDFS之一致性模型-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://m.rwnh.cn/article16/djiodg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司網(wǎng)頁設計公司、云服務器、動態(tài)網(wǎng)站、營銷型網(wǎng)站建設網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
祁门县| 惠安县| 新疆| 资源县| 湖口县| 历史| 开平市| 和龙市| 漳平市| 临西县| 金阳县| 恩平市| 怀安县| 外汇| 浦江县| 九寨沟县| 常州市| 黔西| 宾川县| 邢台市| 永靖县| 长海县| 江川县| 太康县| 萍乡市| 自贡市| 九江市| 团风县| 普宁市| 正蓝旗| 高平市| 腾冲县| 巴彦淖尔市| 大宁县| 永靖县| 米脂县| 汕尾市| 麻栗坡县| 石棉县| 翁源县| 驻马店市|