亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

柘城县| 星子县| 福安市| 泸西县| 临漳县| 通化县| 白水县| 宕昌县| 远安县| 晋州市| 巫山县| 上高县| 巴南区| 汉沽区| 双鸭山市| 革吉县| 涿鹿县| 莱芜市| 长沙市| 治多县| 福清市| 建宁县| 将乐县| 永定县| 滨海县| 西青区| 饶平县| 五华县| 土默特左旗| 普兰县| 洞口县| 敖汉旗| 阳泉市| 霍邱县| 新疆| 松原市| 疏附县| 浮梁县| 专栏| 昌邑市| 固阳县|