elasticsearch启动报错解决 问题集分析

elasticsearch解决启动报错问题集

ps:别问我为什么知道这么多报错,我就是从安装到启动。。。一步一步按着下面报错顺序踩坑的,气死了。。。。希望能帮到入门的你

1 内存报错

报错信息:

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /root/hs_err_pid8704.log

分析:
信息当中说了error=‘Cannot allocate memory’ ,证明服务器内存不足了。
由于elasticsearch5.0 默认分配 jvm 空间大小为2g,所以修改 jvm空间分配即可。

解决:

vim config/jvm.options
执行上面代码 修改相关参数,将2g修改为512m
-Xms2g   --> -Xms512m
-Xmx2g   --> -Xmx512m

2 用户报错 [root]

报错信息:

[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException:
can not run elasticsearch as root

分析:
信息当中说了"can not run elasticsearch as root",看的出来是elasticsearch不允许用root角色去启动项目

解决:

  1. 创建elsearch用户组及elsearch用户:
groupadd elsearch
useradd elsearch -g elsearch
passwd elsearch
  1. 使用root角色更改elsearch文件夹的用户组和用户
先登录root角色然后执行下面命令
chown -R elsearch:elsearch  elasticsearch-5.5.1

在这里插入图片描述
3. 切换到elsearch角色然后执行启动命令

su elsearch 
./elasticsearch-5.5.1/bin/elasticsearch  #启动命令

3 创建描述文件大小太低

报错信息:

[2021-02-02T16:09:02,753][INFO ][o.e.n.Node               ] [YD8pyGI] starting ...
[2021-02-02T16:09:03,073][INFO ][o.e.t.TransportService   ] [YD8pyGI] publish_address {172.16.174.76:9300}, bound_addresses {0.0.0.0:9300}
[2021-02-02T16:09:03,099][INFO ][o.e.b.BootstrapChecks    ] [YD8pyGI] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2021-02-02T16:09:03,158][INFO ][o.e.n.Node               ] [YD8pyGI] stopping ...
[2021-02-02T16:09:03,212][INFO ][o.e.n.Node               ] [YD8pyGI] stopped
[2021-02-02T16:09:03,212][INFO ][o.e.n.Node               ] [YD8pyGI] closing ...
[2021-02-02T16:09:03,227][INFO ][o.e.n.Node               ] [YD8pyGI] closed

分析:
"max file descriptors [65535] forxxxxxx "这句就很好的描述了问题,就是文件大小不足,我们去修改相关的参数即可

解决:

使用root角色执行
vim /etc/security/limits.conf

两种解决方法,下图使用的第一种解决方法

1.添加刚刚新增的用户elsearch创建文件大小
     elsearch soft nofile 65536
     elsearch hard nofile 65536

2.修改后面 "*"对应的文件大小,*是通配符代表所有用户
     * soft nofile 65536
     * hard nofile 65536
修改完之后记得重启服务器,不然可能不生效

在这里插入图片描述

4 配置network.host: 0.0.0.0导致服务启动不成功

个人情况是走完上面的报错之后项目就能顺利启动了,但后面为了所有机器都能访问elsearch就配置了network.host: 0.0.0.0。然后就启动报错了

报错信息:

[2021-02-03T14:30:11,075][INFO ][o.e.t.TransportService   ] [YD8pyGI] publish_address {172.16.174.76:9300}, bound_addresses {0.0.0.0:9300}
[2021-02-03T14:30:11,084][INFO ][o.e.b.BootstrapChecks    ] [YD8pyGI] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low,
 increase to at least [262144]
[2021-02-03T14:30:11,137][INFO ][o.e.n.Node               ] [YD8pyGI] stopping ...
[2021-02-03T14:30:11,210][INFO ][o.e.n.Node               ] [YD8pyGI] stopped
[2021-02-03T14:30:11,211][INFO ][o.e.n.Node               ] [YD8pyGI] closing ...
[2021-02-03T14:30:11,221][INFO ][o.e.n.Node               ] [YD8pyGI] closed

分析:
“max virtual memory areas vm.max_map_count [65530] is too low,” 这个报错也很明显了,和之前文件的一样设置成相应的数值即可

解决:

1.使用root角色执行
vim /etc/sysctl.conf
2.增加以下参数
vm.max_map_count=262144 
3.重启服务器(记得重启,不然可能不生效)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值