Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无法加载JNA本机支持库Elasticsearch 6.x_Linux_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Jna_Mount_Umask - Fatal编程技术网 elasticsearch,jna,mount,umask,Linux,elasticsearch,Jna,Mount,Umask" /> elasticsearch,jna,mount,umask,Linux,elasticsearch,Jna,Mount,Umask" />

Linux 无法加载JNA本机支持库Elasticsearch 6.x

Linux 无法加载JNA本机支持库Elasticsearch 6.x,linux,elasticsearch,jna,mount,umask,Linux,elasticsearch,Jna,Mount,Umask,我已经在我的Debian 7(wheezy)中安装了Elasticsearch 6.x。我试图从服务弹性搜索开始开始,但它给了我一条错误消息 root@debian:~# sudo -i service elasticsearch start [FAIL] Starting Elasticsearch Server: failed! 我试图查看位于nano/var/log/elasticsearch/elasticsearch.log的elasticsearch日志文件,但发现了这个错误 [2

我已经在我的
Debian 7(wheezy)
中安装了Elasticsearch 6.x。我试图从
服务弹性搜索开始
开始,但它给了我一条错误消息

root@debian:~# sudo -i service elasticsearch start
[FAIL] Starting Elasticsearch Server: failed!
我试图查看位于
nano/var/log/elasticsearch/elasticsearch.log
的elasticsearch日志文件,但发现了这个错误

[2017-12-14T11:25:39,153][WARN ][o.e.b.Natives            ] unable to load JNA native support library, native methods will be disabled.
java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/linux-x86/libjnidispatch.so) not found in resource path ([file:/usr/share/elasticsearch/lib/lucene-spatial-$
        at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:962) ~[jna-4.4.0-1.jar:4.4.0 (b0)]
        at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922) ~[jna-4.4.0-1.jar:4.4.0 (b0)]
        at com.sun.jna.Native.<clinit>(Native.java:190) ~[jna-4.4.0-1.jar:4.4.0 (b0)]
        at java.lang.Class.forName0(Native Method) ~[?:1.8.0_151]
        at java.lang.Class.forName(Class.java:264) ~[?:1.8.0_151]
        at org.elasticsearch.bootstrap.Natives.<clinit>(Natives.java:45) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-6.1.0.jar:6.1.0]
        at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-6.1.0.jar:6.1.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) [elasticsearch-6.1.0.jar:6.1.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) [elasticsearch-6.1.0.jar:6.1.0]
[2017-12-14T11:25:39,212][WARN ][o.e.b.Natives            ] cannot check if running as root because JNA is not available
[2017-12-14T11:25:39,212][WARN ][o.e.b.Natives            ] cannot install system call filter because JNA is not available
[2017-12-14T11:25:39,215][WARN ][o.e.b.Natives            ] cannot register console handler because JNA is not available
[2017-12-14T11:25:39,256][WARN ][o.e.b.Natives            ] cannot getrlimit RLIMIT_NPROC because JNA is not available
[2017-12-14T11:25:39,256][WARN ][o.e.b.Natives            ] cannot getrlimit RLIMIT_AS beacuse JNA is not available
[2017-12-14T11:25:39,256][WARN ][o.e.b.Natives            ] cannot getrlimit RLIMIT_FSIZE because JNA is not available
[2017-12-14T11:25:39153][WARN][o.e.b.Natives]无法加载JNA本机支持库,本机方法将被禁用。
java.lang.UnsatifiedLinkError:在资源路径([file:/usr/share/elasticsearch/lib/lucene spatial]中未找到本机库(com/sun/jna/linux-x86/libjnidispatch.so)-$
在com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:962)~[jna-4.4.0-1.jar:4.4.0(b0)]
在com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922)~[jna-4.4.0-1.jar:4.4.0(b0)]
在com.sun.jna.Native.(Native.java:190)~[jna-4.4.0-1.jar:4.4.0(b0)]
在java.lang.Class.forName0(本机方法)~[?:1.8.0_151]
在java.lang.Class.forName(Class.java:264)~[?:1.8.0_151]
在org.elasticsearch.bootstrap.Natives.(Natives.java:45)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.bootstrap.bootstrap.initializations(bootstrap.java:103)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.bootstrap.bootstrap.setup(bootstrap.java:171)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.bootstrap.bootstrap.init(bootstrap.java:322)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.bootstrap.elasticsearch.init(elasticsearch.java:121)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.bootstrap.elasticsearch.execute(elasticsearch.java:112)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.cli.environmentawerecommand.execute(environmentawerecommand.java:86)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.cli.Command.main不带错误处理(Command.java:124)[elasticsearch-cli-6.1.0.jar:6.1.0]
在org.elasticsearch.cli.Command.main(Command.java:90)[elasticsearch-cli-6.1.0.jar:6.1.0]
在org.elasticsearch.bootstrap.elasticsearch.main(elasticsearch.java:92)[elasticsearch-6.1.0.jar:6.1.0]
在org.elasticsearch.bootstrap.elasticsearch.main(elasticsearch.java:85)[elasticsearch-6.1.0.jar:6.1.0]
[2017-12-14T11:25:39212][WARN][o.e.b.Natives]无法检查是否以root身份运行,因为JNA不可用
[2017-12-14T11:25:39212][WARN][o.e.b.Natives]无法安装系统调用筛选器,因为JNA不可用
[2017-12-14T11:25:39215][WARN][o.e.b.Natives]无法注册控制台处理程序,因为JNA不可用
[2017-12-14T11:25:39256][WARN][o.e.b.Natives]无法获取RLIMIT\u NPROC,因为JNA不可用
[2017-12-14T11:25:39256][WARN][o.e.b.本地人]无法获取RLIMIT-RLIMIT_,因为JNA不可用
[2017-12-14T11:25:39256][WARN][o.e.b.Natives]无法获取权限,因为JNA不可用
我如何修复这个问题?我已经安装了java,它的版本是JavaC1.8.0_151

我的代码会出什么问题?
`

检查您的
/tmp/
目录上的权限。它必须具有
noexec

/tmp
需要
exec
来支持JNA。解决方法是在elasticsearch sysconfig文件中指定
tmp
目录

类似于导出JAVA_OPTS=“-Djava.io.tmpdir=$ES_HOME/tmp”

确保存在
$ES_HOME/tmp
目录,并且
elasticsearch
用户对其具有写入权限


我在使用加固的操作系统时遇到了这个问题,同时也是因为默认的umask是
0027

Windows 10上从命令提示符下运行时也遇到了同样的问题:

unable to load JNA native support library, native methods will be disabled.

要解决这个问题,只需运行具有管理员权限的elasticsearch.exe(单击开始->键入“命令”->右键单击“命令提示符”->选择“以管理员身份运行”)

好的,我找到了解决方案。显然,我的vm内存存储(RAM)是1GB-2GB,所以我将虚拟机的RAM容量增加到至少4GB,然后重新启动机器。弹性搜索开始正常工作

  • 转到
    /etc/sysconfig/elasticsearch
  • 添加
    ES\u JAVA\u OPTS=“-Djna.tmpdir=/var/lib/elasticsearch/tmp”

    (对于较新的Elasticsearch,请使用
    Djava.io.tmpdir
    而不是
    Djna.tmpdir

  • 使用
    systemctl Start Elasticsearch
    服务启动Elasticsearch
    启动Elasticsearch
  • 您现在可以看到在
    /var/lib/elasticsearch/
    中创建的
    tmp
    文件夹
  • 此文件夹应具有
    elasticsearch
    用户的执行权限
  • 使用name
    i-l/var/lib/elasticsearch检查权限
  • 确保权限文件具有以下权限

    dr-xr-xr-x root          root          /
    drwxr-xr-x root          root          var
    drwxr-xr-x root          root          lib
    drwxr-x--- elasticsearch elasticsearch elasticsearch
    

  • 我希望您的问题能够得到解决。

    我在CentOS7 cPanel服务器上遇到了相同的问题,该服务器通过YUM安装了ElasticSearch 7.8。 根据报告,我做了以下工作:

  • /etc/sysconfig/elasticsearch
  • mkdir-p/var/lib/elasticsearch/tmp
  • chown-R elasticsearch.elasticsearch/var/lib/elasticsearch/tmp
  • 对我来说,下面的工作:

    PUT your_index_name/_settings
        {
        "index": {
        "blocks": {
        "read_only_allow_delete": "false"
        }
        }
        }
    
    我点击了以下链接:


    在Ubuntu 18.04上,解决方案是

    sudo systemctl edit--完整的elasticsearch.service

    添加一行

    Environment=ES_JAVA_OPTS=“-Djava.io.tmpdir=/var/lib/elasticsearch/tmp”

    与vi中的-x一起退出

    重新启动服务

    sudo systemctl重新启动elasticsearch.service


    似乎我找不到这个/etc/sysconfig/elasticsearch,我只看到/etcWindows或linux machine?将/etc/elasticsearch/jvm.options中的jvm堆大小更改为-Xms2g