一、elasticsearch启动命令
elasticsearch是通过命令行方式启动的,执行命令前需要确保Java环境已经安装。启动命令如下:
./bin/elasticsearch
启动过程大致分为以下几个步骤:
1、首先会检查JVM参数是否正确;
2、其次会检查配置文件是否正确;
3、然后会创建日志文件;
4、接着启动elasticsearch服务;
5、最后开始监听端口并对外提供服务。
二、elasticsearch启动卡住了
有时候我们在启动elasticsearch时可能会遇到卡住的情况,通常这种情况是由于JVM参数设置不当、硬件资源不足或其他未知原因造成的。遇到这种情况需要先检查一下JVM的日志,看看是不是有什么异常信息。
另外,我们还可以通过增加JVM内存大小来解决这个问题,JVM内存的配置文件为elasticsearch.yml,将下面的参数值调大即可。
bootstrap.memory_lock: true discovery.type: single-node ES_JAVA_OPTS: "-Xms4g -Xmx4g"
三、elasticsearch启动使用root
通常情况下我们不应该以root用户启动elasticsearch,因为elasticsearch使用root权限启动会存在安全问题,而且我们也不需要root权限来启动elasticsearch。如果实在无法避免使用root权限启动,可以在启动命令前加上sudo。
sudo ./bin/elasticsearch
四、elasticsearch启动报错
在启动elasticsearch时可能会遇到各种各样的报错,这些报错信息通常是非常友好的。针对报错信息可以通过检查JVM配置、配置文件格式有误、端口占用等方面进行排查。
例如下面这个错误表示JVM内存不足:
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000ccb80000, 273678336, 0) failed; error='Cannot allocate memory' (errno=12)
又例如下面这个错误表示配置文件格式有误:
Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ElasticSearchParseException[Failed to parse the [http.port] setting value [invalid]]; nested: NumberFormatException[For input string: "invalid"];
五、elasticsearch启动关闭
如果需要关闭elasticsearch,可以直接在终端中按下Ctrl+C。
如果需要远程关闭elasticsearch,则需要发送一个POST请求到http://localhost:9200/_shutdown,如下所示:
curl -X POST "http://localhost:9200/_shutdown"
六、elasticsearch启动失败
如果elasticsearch启动失败,可能是由于以下原因导致:
1、JVM启动参数设置有误;
2、硬件资源不足;
3、操作系统限制了进程数量;
4、配置文件格式有误;
5、已有的elasticsearch用户没有启动elasticsearch的权限。
七、elasticsearch启动卡住
如果elasticsearch启动过程中卡住了,我们可以先检查一下JVM参数是否设置正确,同时也可以查看一下日志文件,看看是否有什么异常信息。
如果elasticsearch服务已经在运行了但是管理界面没有响应,则可能是由于TCP/IP端口被防火墙或其它原因阻塞了。
八、elasticsearch启动参数
在启动elasticsearch时我们可以通过传递参数来改变默认行为,例如启动时关闭搜索缓存:
./bin/elasticsearch -E "search.cache.enabled=false"
更多启动参数可以查看elasticsearch的官方文档。
九、elasticsearch启动日志
elasticsearch启动时会生成日志文件,日志文件地址为logs/elasticsearch.log,在调试过程中可以通过查看日志文件来了解elasticsearch运行的详细信息。
十、elasticsearch启动不了
如果elasticsearch启动不了,可能是由于硬件资源不足导致的或者操作系统设置了进程数量限制,请先查看JVM内存、硬盘空间是否足够。
如果硬件资源充足,可以尝试修改操作系统的限制值,如下所示:
sudo sysctl -w vm.max_map_count=262144
以上是macOS的设置方法,如果是其他操作系统需要查看相关文档。
总之,elasticsearch启动过程中遇到问题并不可怕,很多问题都可以通过查看日志、调整JVM参数、修改配置文件来解决。逐个排查问题,我们相信你一定能顺利启动elasticsearch。