If you really confirmed that libsnappy.so.1 is in the correct location, and 
being loaded into java library path, working in your test program, but still 
didn't work in MR, there is one another possibility which was puzzling me 
before.
How do you get the libhadoop.so in your hadoop environment? Did you compile it 
by yourself, or is it  from some vendors?
You want to make sure the Java native methods of invoking snappy is also being 
compiled and available in libhadoop.so.
For example, the following command will prove it:
$ nm ./libhadoop.so | grep snappy00000000000035c0 T 
Java_org_apache_hadoop_io_compress_snappy_SnappyCompressor_compressBytesDirect0000000000003960
 T 
Java_org_apache_hadoop_io_compress_snappy_SnappyCompressor_initIDs0000000000003bb0
 T 
Java_org_apache_hadoop_io_compress_snappy_SnappyDecompressor_decompressBytesDirect0000000000003f60
 T 
Java_org_apache_hadoop_io_compress_snappy_SnappyDecompressor_initIDs0000000000206cf0
 b dlsym_snappy_compress0000000000206d20 b dlsym_snappy_uncompress
Without these Java native methods being compiled and available in the 
libhadoop.so, MR runtime will also complain that "native snappy library not 
available".
Yong
Date: Thu, 2 Jan 2014 13:37:46 +0200
Subject: Re: Setting up Snappy compression in Hadoop
From: am...@infolinks.com
To: user@hadoop.apache.org

I did everything mentioned in the link Ted mentioned, and the test actually 
works, but using Snappy for MapReduce map output compression still fails with 
"native snappy library not available".


On Wed, Jan 1, 2014 at 6:37 PM, bharath vissapragada 
<bharathvissapragada1...@gmail.com> wrote:

Did you build it for your platform? You can do an "ldd" on the .so file to 
check if the dependent libs are present. Also make sure you placed it in the 
right directory for your platform (Linux-amd64-64 or Linux-i386-32)




On Wed, Jan 1, 2014 at 10:02 PM, Ted Yu <yuzhih...@gmail.com> wrote:



Please take a look at http://hbase.apache.org/book.html#snappy.compression
Cheers




On Wed, Jan 1, 2014 at 8:05 AM, Amit Sela <am...@infolinks.com> wrote:




Hi all, 
I'm running on Hadoop 1.0.4 and I'd like to use Snappy for map output 
compression.I'm adding the configurations:
configuration.setBoolean("mapred.compress.map.output", true);





configuration.set("mapred.map.output.compression.codec", 
"org.apache.hadoop.io.compress.SnappyCodec");

And I've added libsnappy.so.1 to $HADOOP_HOME/lib/native/Linux-amd64-64/





Still, all map tasks fail with "native snappy library not available".
Could anyone elaborate on how to install Snappy for Hadoop ?





Thanks, 
Amit.





                                          

Reply via email to