解锁 Elasticsearch 服务启动:常见错误与问题的解决方案

21 阅读1分钟

问题一:写入文件过多

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

ES 因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除 linux 系统当中打开文件最大数目的限制,不然ES启动就会抛错

#切换到root用户
vim /etc/security/limits.conf
末尾添加如下配置: 
* soft nofile 65536 
* hard nofile 65536 
* soft nproc 4096 
* hard nproc 4096

问题二: 无法创建本地线程

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

vim /etc/security/limits.d/20-nproc.conf

 改为如下配置:

* soft nproc 4096

问题三:最大虚拟内存太小

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

最大虚拟内存太小,调大系统的虚拟内存

vim /etc/sysctl.conf
 追加以下内容:
vm.max_map_count=262144

保存退出之后执行如下命令: sysctl -p

问题四: 缺少默认配置

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.

  • discovery.seed_hosts: 集群主机列表
  • discovery.seed_providers: 基于配置文件配置集群主机列表
  • cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填
vim config/elasticsearch.yml
#添加配置
discovery.seed_hosts: ["127.0.0.1"] 
cluster.initial_master_nodes: ["node-1"]
discovery.type: single-node 
  #或者 单节点(集群单节点)