Centos 上的 Elasticsearch 出现“无法加载 jna”错误

Centos 上的 Elasticsearch 出现“无法加载 jna”错误

解决这个问题的办法是什么?

在 Centos 6.8 上新安装 elasticsearch 5.4.1

[2017-06-15T13:54:19,140][WARN ][o.e.b.Natives            ] unable to load JNA n
ative support library, native methods will be disabled.
java.lang.UnsatisfiedLinkError: /tmp/jna--1985354563/jna5608110195315969032.tmp:
 /tmp/jna--1985354563/jna5608110195315969032.tmp: failed to map segment from sha
red object: Operation not permitted
        at java.lang.ClassLoader$NativeLibrary.load(Native Method) ~[?:1.8.0_131
]
        at java.lang.ClassLoader.loadLibrary0(Unknown Source) ~[?:1.8.0_131]
        at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[?:1.8.0_131]
        at java.lang.Runtime.load0(Unknown Source) ~[?:1.8.0_131]
        at java.lang.System.load(Unknown Source) ~[?:1.8.0_131]
        at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java
:947) ~[jna-4.4.0.jar:4.4.0 (b0)]
        at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922) ~[jna-4
.4.0.jar:4.4.0 (b0)]
        at com.sun.jna.Native.<clinit>(Native.java:190) ~[jna-4.4.0.jar:4.4.0 (b
0)]
        at java.lang.Class.forName0(Native Method) ~[?:1.8.0_131]
        at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_131]
        at org.elasticsearch.bootstrap.Natives.<clinit>(Natives.java:45) [elasti
csearch-5.4.1.jar:5.4.1]
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.jav
a:105) [elasticsearch-5.4.1.jar:5.4.1]

答案1

解决了这个问题。

/tmp 已挂载为 noexec。

更新了 /etc/fstab 以通过 exec 挂载 /tmp,此问题已解决。

这里部分讨论 https://github.com/elastic/elasticsearch/issues/18406

相关内容