我正在通過java
從本地讀取Snappy Compressed file
。閱讀Snappy壓縮文件時出錯
File snappyFile = new File(fileName);
Configuration conf = new Configuration();
CompressionCodec codec = (CompressionCodec)
ReflectionUtils.newInstance(SnappyCodec.class, conf);
FileInputStream is2 = new FileInputStream(snappyFile);
CompressionInputStream cis = codec.createInputStream(is2);
BufferedReader cr = new BufferedReader(new InputStreamReader(cis));
我的代碼是在ReflectionUtils.newInstance
Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodException: org.xerial.snappy.SnappyCodec.<init>()
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:128)
at org.finra.oats.AWS.AWSnappyRead.run(AWSnappyRead.java:64)
at org.finra.oats.AWS.AWSnappyRead.main(AWSnappyRead.java:48)
Caused by: java.lang.NoSuchMethodException: org.xerial.snappy.SnappyCodec.<init>()
at java.lang.Class.getConstructor0(Class.java:2849)
at java.lang.Class.getDeclaredConstructor(Class.java:2053)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:122)
... 2 more
越來越例外是不是因爲版本不匹配的問題。我正在使用snappy 1.1.1.2
版本
從你的問題和提供的statcktrace中,你不是很清楚你想實現什麼。你想從文件系統讀取一個Snappy壓縮文件嗎? – SubOptimal
你應該改說你的問題。似乎您嘗試讀取Hadoop序列文件。也許這個線程[讀寫使用Hadoop 2.0 Apis序列文件](http://stackoverflow.com/questions/16070587)可以幫助你。 – SubOptimal
我已經發布了它[鏈接](http://stackoverflow.com/questions/29816067/how-to-read-snappy-compressed-file-from-s3-in-java)。你可以參考鏈接來得到一個簡要的想法。 – salmanbw