Восстановление сжатого файла из файла действительной длины, созданного Flink BucketingSink - PullRequest
0 голосов
/ 19 апреля 2019

Я использую собственный Gzip Compressed Writer для Flink BucketingSink для записи сжатого текстового файла в формате hdf.Я хотел бы убедиться, что раковина ровно один раз.В моем случае, у которого hasoop <2.7, BucketingSink сгенерирует файл действительной длины, записывающий действительную длину в байтах этого файла, если задание иногда не удавалось.Обрезать простой текстовый файл легко, но сжатый файл gzip сильно отличается, урезание файла до допустимой длины приведет к повреждению gzip.Однако использование bash-приложения «zcat» может отображать данные без проверки формата и crc32.</p>

Но чтобы восстановить действительный файл gz, теперь мне нужно выполнить несколько шагов: 1. загрузить все сбойные файлы gz 2. обрезать их по допустимой длине.3. zcat усеченный файл gz и перенаправить в текстовый файл.4. повторно сжать текстовый файл, используя gzip.5. загрузить измененный файл в hdfs

Метод очень медленный, так как у меня могут быть сотни файлов для этой работы.Есть ли хорошая идея сделать мою работу?Я думаю, что некоторые параллельные распределенные методы могут работать.

...