Java HotSpot(TM) 64-Bit Server VM warning: INFO:
os::commit_memory(0x00000000c5330000, 986513408, 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 986513408 bytes for committing reserved
memory.             # An error report file with more information is saved as:
            # /usr/local/software/temp/elasticsearch-6.2.2/hs_err_pid1912.log
碰到这种问题是,是说明你的内存容量比较小。要么去给你的服务器升配,要么就去修改你JVM的大小
//进入你ES安装的地方,然后进入config文件夹 cd /usr/local/software/elasticsearch-5.6.8/config
//打开配置文件夹里面的JVM.options vi jvm.options //然后修改这两个属性。
//默认是2g,一般而言我们买服务器的内存总共才2g,所以把这个修改到512m -Xms512m -Xmx512m
这时候再去启动,然后就会发现有这个错误
ot@iZ2ze7xpvk1fgm6qtatddmZ bin]# ./elasticsearch
[2019-01-01T21:50:58,913][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler]
[] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can
not run elasticsearch as root at
org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.cli.Command.main(Command.java:90)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)
~[elasticsearch-5.6.8.jar:5.6.8] Caused by: java.lang.RuntimeException: can not
run elasticsearch as root at
org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342)
~[elasticsearch-5.6.8.jar:5.6.8] at
org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132)
~[elasticsearch-5.6.8.jar:5.6.8] ... 6 more
这是因为root用户不能去运行elasticsearch,必须重新添加一个用户
添加用户:useradd -m 用户名 然后设置密码 passwd 用户名
用这个用户去启动es,如果需要外网访问的时候,你需要修改配置文件
cd .. cd config/ vi elasticsearch.yml
你会看到全用#注释的一个文本文件。不要方!这不是你下载错了,这是ES默认的设置。如果你要设置为外网访问的话,你需要把 network.host:
127.0.0.1 这行的注释去掉然后把127.0.0.1修改为0.0.0.0 其他的就不用管,保存退出。

再去启动的时候可能会碰到会碰到下面两个错误
[1]: max file descriptors [65535] for elasticsearch process is too low,
increase to at least [65536] [2]: max virtual memory areas vm.max_map_count
[65530] is too low, increase to at least [262144]
遇到这种情况首先需要切换到root用户,然后再去修改etc下面的两个文件。具体如下:
su root vi /etc/security/limits.conf //在最后一行中加入 * soft nofile 65536 * hard
nofile 65536 //保存退出 //这时候第一条错误已经解决了,然后同样是root用户 vi /etc/sysctl.conf
//同样在最后一行中加入 vm.max_map_count=655360 //保存退出后,然后执行下面这个命令 sysctl -p
接着再进入到bin文件夹,然后启动elasticsearch

如果这时候你还发现无法在外网访问的话,就去看看你服务器的安全组设置了没。我就是安全组没有设置导致搞了三个多小时还没搞好 T  T||。

再去看看你的防火墙开了没,一般ECS默认是不开防火墙的, 我遇到的bug就这些了。希望你们能顺利成功。

 

 

 

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信