4

I'm trying running ElasticSearch client and getting xerial.snappy error FAILED_TO_LOAD_NATIVE_LIBRARY.

I'm using elastic search v. 0.20.5:

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch</artifactId>
  <version>0.20.5</version>
</dependency>

and also added snappy v.1.0.4.1 into my dependency(but it did not help either):

<dependency>
  <groupId>org.xerial.snappy</groupId>
  <artifactId>snappy-java</artifactId>
  <version>1.0.4.1</version>
</dependency> 

here is the error I'm getting (my app continues to run, but I suspect compression lib is not in use)

INFO  Log4jESLogger.internalInfo - [Human Top II] loaded [], sites [] 
DEBUG Log4jESLogger.internalDebug - using [UnsafeChunkDecoder] decoder 
DEBUG Log4jESLogger.internalDebug - failed to load xerial snappy-java 
org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] null
    at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:229)
    at org.xerial.snappy.Snappy.<clinit>(Snappy.java:44)
    at org.elasticsearch.common.compress.snappy.xerial.XerialSnappy.<clinit>(XerialSnappy.java:42)
    at org.elasticsearch.common.compress.CompressorFactory.<clinit>(CompressorFactory.java:58)
    at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:161)
    at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:109)

My code that generates this issue:

  public static void main(String[] args)
  {
    // Error happens during client creation...
    Client client = new TransportClient().addTransportAddress(new InetSocketTransportAddress("localhost", 9300));
    try
    { 
      SearchResponse res = client.prepareSearch().execute().actionGet();
      SearchHits hits = res.getHits();
    }
    finally
    {
      client.close();
    }
  }

Can anyone shed some light into this issue? How to make snappy to load native lib? I'm currently on Win7-64, but want to be running on AWS(centOS,RH,etc)

user1697575
  • 2,830
  • 1
  • 24
  • 37

0 Answers0