centos 7无法启动elasticsearch服务

Can't start elasticsearch service on centos 7

我刚刚安装了 elasticsearch,但是当我尝试启动时却无法正常工作。有人知道我能做什么吗?

sudo journalctl --unit elasticsearch

-- Logs begin at Sat 2020-08-29 09:54:58 UTC, end at Sat 2020-08-29 13:15:35 UTC. --
Aug 29 10:10:28 meriadoc.dallas-idc.com systemd[1]: Starting Elasticsearch...
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: fatal error in thread [main], exiting
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.systemd.Libsystemd.lambda$static[=10=](Libsystemd.java:34)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.systemd.Libsystemd.<clinit>(Libsystemd.java:33)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.systemd.SystemdPlugin.sd_notify(SystemdPlugin.java:126)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.systemd.SystemdPlugin.onNodeStarted(SystemdPlugin.java:137)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at java.base/java.util.ArrayList.forEach(ArrayList.java:1510)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.node.Node.start(Node.java:868)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:317)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:402)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.cli.Command.main(Command.java:90)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd[1]: Failed to start Elasticsearch.
Aug 29 10:10:35 meriadoc.dallas-idc.com systemd[1]: Unit elasticsearch.service entered failed state.

非常感谢

如果仔细观察启动日志中的错误信息,这似乎是启动失败的原因。

Aug 29 10:10:35 meriadoc.dallas-idc.com systemd-entrypoint[3579]: java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native

请按照 https://www.jetbrains.com/help/upsource/error-could-not-initialize-class-com-sun-jna-native.html#8182b 进行操作,其中详细说明了错误原因和 2 种解决方法。