0
我在解密&對大文件執行一些基本操作時遇到gpg解密問題。解密後的正常解密文件爲60G &,其膨脹至450G。gpg解密塊大小限制
解密,然後rowcount(wc -l)只在HDFS層內完成;以下是代碼片段
rowCount=`hdfs dfs -cat ${hdfsDir}/{fileName} | decrypt | wc -l`
上面的「解密」應該由gpg --decrypt ...命令替換。我沒有寫在這裏只是爲了避免它。 對於像2〜3Gigs這樣的小文件,代碼工作正常。但對於像上面提到的大小的大文件,解密會拋出錯誤:
gpg: block_filter 0x7f2cf62547c0: read error (size=14560,a->size=14560)
gpg: block_filter 0x7f2cf624c990: read error (size=14900,a->size=14900)
gpg: mdc_packet with invalid encoding
gpg: decryption failed: Invalid packet
gpg: block_filter: pending bytes!
gpg: block_filter: pending bytes!
任何人都知道發生了什麼事?
有一個誤解,加密/解密不會改變數據大小超過十幾個字節。壓縮可以徹底改變文件大小。那麼,究竟發生了什麼,這個問題是模糊的。建議使用小尺寸文件並在每個步驟檢查數據。提供[mcve], – zaph
好的。我不認爲除gpg加密/解密之外,還有其他壓縮算法正在運行。也許它會更清楚,如果我把加密/ decrytion命令在這裏: 加密: 'GPG --recipient [email protected] --encrypt' 解密: '貓FILENAME.gpg | gpg --batch --passphrase-file passPhraseFile --yes --recipient [email protected] --decrypt' 這裏沒有壓縮發生;在所有。希望這是一個最小的開始。 –
knowone
OK,那麼gpg是否也提供壓縮?你應該知道,如果你正在使用它。 – zaph