3

我正在尝试运行 ElasticSearch 客户端并收到 xerial.snappy 错误 FAILED_TO_LOAD_NATIVE_LIBRARY。

我正在使用弹性搜索 v. 0.20.5:

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

并且还在我的依赖项中添加了 snappy v.1.0.4.1(但它也没有帮助):

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

这是我得到的错误(我的应用程序继续运行,但我怀疑压缩库未在使用中)

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)

我产生此问题的代码:

  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();
    }
  }

任何人都可以阐明这个问题吗?如何快速加载本机库?我目前在 Win7-64 上,但想在 AWS(centOS、RH 等)上运行

4

0 回答 0