Przechowuję pliki w HDFS w formacie kompresji Snappy. Chciałbym móc przeanalizować te pliki w lokalnym systemie plików systemu Linux, aby upewnić się, że proces Hadoop, który je utworzył, działał poprawnie.Jak mogę odczytać skompresowane pliki Snappy na HDFS bez korzystania z Hadoop?
Po skopiowaniu ich lokalnie i podjęciu próby ich usunięcia przy użyciu standardowej libary Google, oznacza to, że w pliku brakuje identyfikatora Snappy. Kiedy próbuję to obejść, wstawiając identyfikator Snappy, uruchamia on sumę kontrolną.
Co mogę zrobić, aby przeczytać te pliki bez konieczności pisania osobnego programu Hadoop lub przekazywania go przez coś podobnego do Hive?
Jak mogę to zrobić programowo w scala lub java? – Bunder
Aby programowo zapisywać do pliku Snappy, należy zaimportować klasę kodek Snappy i pobrać instancję tej klasy w ramach konfiguracji odwzorowania lub reduktora. Musisz przekazać swój strumień wyjściowy przez funkcję "createOutputStream" kodeka, aby uzyskać zakodowany strumień wyjściowy. Oto fragment. Odczyt jest taki sam na odwrocie: kodek = (CompressionCodec) ReflectionUtils.newInstance (codecClass, conf); fileOut = fs.create (targetPath, false); thiswriter = new LineRecordWriter (new DataOutputStream (codec.createOutputStream (fileOut))); –