ElasticSearch配置简介
配置文件在/etc/elasticsearch目录下:jvm.options、elasticsearch.yml和log4j2.properties。其中 jvm.options为虚拟机配置,log4j2.properties为日志配置,都相对比较简单。下面重点介绍elasticsearch.yml 一些重要的配置项及其含义。
(1)cluster.name: elasticsearch
配置elasticsearch的集群名称,默认是my-application。elasticsearch会自动发现在同一网段下的集群名为my-application的主机,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。生成环境时建议更改。
(2)node.name: “node-1”
节点名,生成环境中建议更改以能方便的指定集群中的节点对应的机器。
(3)node.master: true
指定该节点是否有资格被选举成为master,默认是true,elasticsearch默认集群中的第一台启动的机器为master,如果这台机挂了就会重新选举master。
(4)node.data: true
指定该节点是否存储索引数据,默认为true。如果节点配置node.master:false并且node.data: false,则该节点将起到负载均衡的作用
(5)index.number_of_shards: 5
设置默认索引分片个数,默认为5片。经本人测试,索引分片对ES的查询性能有很大的影响,在应用环境,应该选择适合的分片大小。
(6)index.number_of_replicas:
设置默认索引副本个数,默认为1个副本。此处的1个副本是指index.number_of_shards的一个完全拷贝;默认5个分片1个拷贝;即总分片数为10。
(7)path.data:/path/to/data1,/path/to/data2
设置索引数据的存储路径,默认是/var/lib/elasticsearch,可以设置多个存储路径,用逗号隔开。
(8)path.logs: /path/to/logs
设置日志文件的存储路径,默认是/var/lib/elasticsearch
(9)bootstrap.memory_lock: true
设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不使用swap分区,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过ulimit -l unlimited命令。
(10)network.host: 192.168.0.1
这个参数是用来同时设置bind_host和publish_host上面两个参数。
(11)http.port: 9200
设置对外服务的http端口,默认为9200。
(12)gateway.recover_after_nodes: 3
设置集群中N个节点启动时进行数据恢复,默认为3。
(13)discovery.zen.minimum_master_nodes: 1
设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
(14)discovery.zen.ping.unicast.hosts: [“host1”, “host2:port”]
设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。