当前位置: 首页 > news >正文

centos7安装 ES集群 elasticsearch

这里写自定义目录标题

  • 编写启动脚本 elasticsearch.sh
  • 启动可能报错:elasticsearch 7.10启动报错 bootstrap checks failed
        • 解决方法
        • 问题原因:
        • 注意 退出xshell,重新登录: 上面两个配置项改完后,ES启动用户(es 或root) **重新登录**就会生效;

编写启动脚本 elasticsearch.sh

  • 懒人编写一个用于启动、停止和重启Elasticsearch服务的shell脚本
  • 脚本中设置环境变量,并使用su - es - c命令在es用户下执行操作
  • 通过赋予脚本执行权限,用户可以方便地对Elasticsearch进行控制
#!/bin/shexport JAVA_HOME=/opt/software/java11/jdk-11.0.11
export PATH=$JAVA_HOME/bin:$PATH
export ES_HOME=/opt/software/elasticsearch/elasticsearch-7.6.1
export PATH=$ES_HOME/bin:$PATHif [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
ficase $1 instart)su - es -c "$ES_HOME/bin/elasticsearch -d -p pid"echo "elasticsearch is started";;stop)pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`kill -9 $pidecho "elasticsearch is stopped";;restart)pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`kill -9 $pidecho "elasticsearch is stopped"sleep 1su - es -c "$ES_HOME/bin/elasticsearch -d -p pid"echo "elasticsearch is started";;*)echo "start|stop|restart";;
esac
exit 0

赋予执行权限:

chmod +x elasticsearch.sh

参数说明:

su - es -c “命令”, 这个表示脚本内切换es用户一次并执行 -c 后面的命令,然后退出es普通用户到当前用户。

启动可能报错:elasticsearch 7.10启动报错 bootstrap checks failed

elasticsearch 7.14启动报错 bootstrap checks failed
现象一
ES使用root用户安装报错如下

Caused by: java.lang.RuntimeException: can not run elasticsearch as root[root@localhost elasticsearch-7.14.2]# ./bin/elasticsearch
[2022-09-18T16:40:41,166][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [localhost.localdomain] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.14.2.jar:7.14.2]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.14.2.jar:7.14.2]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75) ~[elasticsearch-7.14.2.jar:7.14.2]at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116) ~[elasticsearch-cli-7.14.2.jar:7.14.2]at org.elasticsearch.cli.Command.main(Command.java:79) ~[elasticsearch-cli-7.14.2.jar:7.14.2]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.14.2.jar:7.14.2]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:81) ~[elasticsearch-7.14.2.jar:7.14.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-7.14.2.jar:7.14.2]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-7.14.2.jar:7.14.2]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:399) ~[elasticsearch-7.14.2.jar:7.14.2]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.14.2.jar:7.14.2]... 6 more
uncaught exception in thread [main]
java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103)at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170)at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:399)at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75)at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116)at org.elasticsearch.cli.Command.main(Command.java:79)at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:81)
For complete error details, refer to the log at /opt/ES/elasticsearch-7.14.2/logs/elasticsearch.log
解决方法

ES官方为了安全起见,禁止启用Root启动ES服务,因此我们需要进行普通用户的创建,才能正常启动ES服务。所以我们需要新建一个普通用户,并将ES安装目录授权给刚新建的用户。

[root@localhost ES]# useradd es

错误信息:

ERROR: [1] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3795] for user [es] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题原因:

es高版本对资源要求较高,linux系统默认配置不能满足它的要求,所以需要单独配置

解决方法:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

修改vi /etc/security/limits.conf 文件,加入配置

* hard nofile 65535  # *可以是es启动用户
* soft nofile 65535

可以指定用户
在这里插入图片描述

[2]: max number of threads [3795] for user [es] is too low, increase to at least [4096]

修改vi /etc/security/limits.conf 文件,加入配置

es - nproc 4096   # es是我的启动用户
注意 退出xshell,重新登录: 上面两个配置项改完后,ES启动用户(es 或root) 重新登录就会生效;
[3]:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

修改/etc/sysctl.config文件,加入下面配置

vi /etc/sysctl.conf

vm.max_map_count=262144

执行命令,立即生效

/sbin/sysctl -p
vm.max_map_count = 262144

启动成功

http://www.lryc.cn/news/420187.html

相关文章:

  • 互联网应用主流框架整合【Redis数据结构及常用命令】
  • GORM 自动迁移与命名策略
  • python社会科学问题研究的计算实验
  • Element Plus 发布 2.8.0
  • 解释区块链技术的应用场景和优势-水文
  • 等保测评基础知识(一)
  • 股指期货套期保值中的展期管理有哪些?
  • 如何通过参考文献找到原文
  • 春秋云境 | SQL | CVE-2022-4230
  • 3.串口(UART)
  • macOS Sonoma 14.6.1 (23G93) Boot ISO 原版可引导镜像下载
  • 论企业私域流量运营中的玩法创新与开源 AI 智能名片 O2O 商城小程序的应用
  • nginx.conf alias 静态资源 别名 nginx配置
  • pve虚拟机使用
  • Linux:进程概念详解
  • cms框架cookice注入漏洞
  • RabbitMQ高级特性 - 非持久化 / 持久化(交换机、队列、消息)
  • OpenGL ES->工作机制
  • ue4.27 C++ 解析内容为json的字符串
  • 图论③ | Java | 孤岛的总面积、沉没孤岛、水流问题 、建造最大岛屿
  • 基于VEH的无痕HOOK
  • 芯片内部如何实现过欠压功能?
  • Basic‘ attribute type should not be a container解决方法
  • Linkis-RPC的设计思想
  • 31 - memmove()函数
  • 【深度学习】创建和训练Transformer神经网络模型,将葡萄牙语翻译成英语
  • [Qt][多元素控件]详细讲解
  • /var/log/里面的文件具体是什么?linux的登录文件
  • JVM知识总结(双亲委派机制)
  • YOLOv2:更快更准的目标检测