91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop SequenceFile BLOCK壓縮類型文件數據丟失怎么辦

發布時間:2021-12-10 09:23:10 來源:億速云 閱讀:134 作者:iii 欄目:云計算

本篇內容介紹了“Hadoop SequenceFile BLOCK壓縮類型文件數據丟失怎么辦”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

先來了解SequenceFile BLOCK壓縮類型的數據寫入機制:

BLOCK壓縮類型的SequenceFile數據結構圖

Hadoop SequenceFile BLOCK壓縮類型文件數據丟失怎么辦

BLOCK壓縮類型的SequenceFile.Writer實現類為SequenceFile.BlockCompressWriter,寫入流程如下:

    1.寫入頭部信息:版本信息,壓縮類型信息,壓縮算法類信息,keyClass/valueClass類名,Metadata等;

    2.寫入Sync標記;

    3.將key和value序列化并寫入緩存,當緩存大小達到閾值(默認io.seqfile.compress.blocksize=1000000字節),觸發sync()操作,sync操作:先寫入sync標記,再將緩存中的key和value進行壓縮寫入FSDataOutputStream,格式如上圖中的Block compression。 這樣就成功寫入了一個block;

    4. 后續的數據寫入流程和3一樣;

    5. 當最后數據寫入完成后,會存在最后一個block的數據小于io.seqfile.compress.blocksize,這樣不會觸發sync()操作,所以必須調用BlockCompressWriter的close()方法,其中會去調用sync()操作將最后剩余的數據寫入FSDataOutputStream,并對FSDataOutputStream做close(),至此完成整個寫入流程。

?解決我的問題:?

    我的問題是由于在寫入數據結束后只對FSDataOutputStream做了close()操作,而根據BLOCK壓縮類型的寫入必須調用Writer的close()操作,才能觸發sync()操作將剩余數據壓縮寫入FSDataOutputStream。而在我的實現中,當設置io.seqfile.compression.type為NONE和RECORD,不會出現數據丟失。 因為這兩種壓縮類型,是來一條數據就寫入outputStream,沒有BLOCK這樣的緩存后再寫入機制。

“Hadoop SequenceFile BLOCK壓縮類型文件數據丟失怎么辦”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长丰县| 涡阳县| 波密县| 石渠县| 田阳县| 东阿县| 神木县| 阿勒泰市| 东明县| 普安县| 建平县| 芦溪县| 东乡县| 扬州市| 齐齐哈尔市| 木兰县| 阜新| 东乡族自治县| 固安县| 冷水江市| 德化县| 河源市| 阳高县| 永昌县| 渭源县| 宝应县| 清镇市| 柘城县| 阿坝县| 栾城县| 涟水县| 绥宁县| 商南县| 威信县| 中宁县| 波密县| 墨脱县| 吴忠市| 措勤县| 红河县| 江口县|