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