在 centos7 上搭建 elasticsearch时,发生了一些报错,总结如下:
1. Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
原因:内存空间不足
解决办法:由于 elasticsearhc 默认分配空间为2g,可以通过修改配置文件 /config/jvm.options,降低分配的内存空间
vim /conf/jvm.options
2.max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因: 权限不够,导致 /usr/local/elasticsearch/logs/elasticsearch.log日志文件时,xxx 用户没权限写入
解决方式:切换到 root 用户,并给 elasticssearch 用户权限即可
# 转换身份为 root 用户
su root# 赋予用户 elasticsearch(或是其他用户) 操作权限
cd /usr/local/elasticsearch
chown -R elasticsearch .
3. max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因:用户最大可创建文件数太小
解决方式:
# 使用 root 账户
su root# 编辑文件
vi /etc/security/limits.conf# 添加如下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
4. max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
原因: 用户最大可创建线程数太小
解决方式:
# 使用 root 账户
su root# 编辑文件
vi /etc/security/limits.d/90-nproc.conf# 修改文件内容
旧内容: * soft nproc 1024
新内容: * soft nproc 2048
5. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因: 虚拟内存区域开辟不足
解决方式:
######## 临时解决,重启linux会失效 #######
sudo sysctl -w vm.max_map_count=262144######## 永久解决 #######
# 转为 root 用户
su root# 编辑文件
vim /etc/sysctl.conf# 增加内容
vm.max_map_count=262144# 重启linux生效
reboot
6. 用chrome访问192.168.47.135:9200时出进入不了页面
原因:es的配置文件限制了指定的ip访问,默认是服务器的locallhost:9200
解决方式:
修改 /usr/local/elasticsearch/conf/elasticsearch.yml
若还是访问不了,注意需要使用 ip 访问,即: 192.168.47.135:9200,不能使用 127.0.0.1:9200 或 http://localhost:9200