白话Elasticsearch71-ES生产集群部署之各个节点以daemon模式运行以及优雅关闭

2021-08-17 11:04:11 浏览数 (1)


概述

继续跟中华石杉老师学习ES,第71篇

课程地址: https://www.roncoo.com/view/55


官方指导

启动ES https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html#starting-elasticsearch

停止ES https://www.elastic.co/guide/en/elasticsearch/reference/current/stopping-elasticsearch.html


启动 ES

可以从命令行启动Elasticsearch,如下所示:

代码语言:javascript复制
./bin/elasticsearch

默认情况下,Elasticsearch在前台运行,将其日志打印到标准输出(stdout),可以通过按停止Ctrl-C。

后台运行

在生产环境中,会使用daemon进程的方式来启动es,而不是直接采用前台进程的方式来启动es,具体命令如下

代码语言:javascript复制
./bin/elasticsearch -d -p pid

上面命令中的-d option用来指定es以daemon进程方式启动,并且-p option指定将进程id记录在指定文件中.

es启动后,日志信息可以在ES_HOME/logs目录中查看

此外,启动es进程的时候,还可以直接覆盖一些配置,使用-E即可


优雅的关闭 ES

停止ES https://www.elastic.co/guide/en/elasticsearch/reference/current/stopping-elasticsearch.html

优雅的关闭es,可以确保es关闭的很干净,并且优雅关闭资源。举例来说,如果node在一个合理的顺序下关闭了,首先会将自己从cluster中优雅移除,fsync translog日志到磁盘中去,然后执行其他相关的cleanup活动。

如果我们将es用service的方式来运行,那么可以通过server管理功能来停止es。

如果我们是直接启动es的,可以control-C停止es,或者是发送SEGTERM信号给es进程

代码语言:javascript复制
jps | grep Elasticsearch

kill -SIGTERM 15516

如果es发生了fatal error,类似out of memory error,代码bug,或者io error,等等

当es发现jvm有一个fatal error,就会尝试记录在log里面,然后尝试去停止jvm。

此时es是不会按照优雅关闭的模式去执行的,而是会直接关闭,并且返回一个错误码

  • JVM internal error 128
  • JOut of memory error 127
  • JStack overflow error 126
  • JUnknown virtual machine error 125
  • JSerious I/O error 124
  • JUnknown fatal error 1

0 人点赞