【ElasticSearch】:elasticsearch.yml配置
ElasticSearch5的elasticsearch.yml配置
注意 elasticsearch.yml中的配置,冒号和后面配置值之间有空格
cluster.name: my-application
指定集群的名称,同一个集群的节点务必设置同一名称
node.name: node-1
指定节点的名称,同一集群的节点名称不能相同
node.attr.rack: r1
指定节点的部落属性,一个比集群更大的范围
node.master: true
指定是否为主节点。该属性可不指定,节点之间自主选举
node.data: true
指定是否为数据节点,存储数据
path.data: /path/to/data
指定es的数据存储目录,默认存储在es_home/data目录下
path.logs: /path/to/logs
指定es的日志存储目录,默认存储在es_home/logs目录下
bootstrap.memory_lock: true
启动后锁定物理内存,避免es使用swap交换分区。提升ES性能
确保ES_HEAP_SIZE参数设置为系统可用内存的一半左右,最大不超过31GB
network.host: 192.168.0.1
为es设置绑定ip,默认是127.0.0.1,也就是默认只能通过127.0.0.1 或者localhost才能访问,生产环境设置为固定IP
http.port: 9200
对外的端口,默认9200。建议重新设置,提高安全性。
transport.tcp.port: 9300
设置TCP传输端口,这个端口非常重要。
1.Discovery部分的设置,集群内节点发现的心跳通信走的就是这个端口
2.集群节点发现后,节点之间传输数据也是走这个TCP端口
3.官方提供的ES JAVA API也是通过这个端口传输数据的。
discovery.zen.ping.unicast.hosts: ["192.168.2.1:9300", "192.168.2.2:9300", "192.168.2.2:9300"]
unicast:单播协议选举master。此处配置想成为master的所有节点,ES集群将从这些节点中选举出来master
discovery.zen.minimum_master_nodes: 2
配置原则:(集群总节点数量/2)向下取整+1,也就是集群不能过半数的节点同时挂掉,防止集群脑裂现象
gateway.recover_after_nodes: 3
集群中的N个节点启动后,才允许进行数据恢复处理。
action.destructive_requires_name:true
生产环境中,务必配置为true,含义是删除索引必须要索引名称,不能使用delete_all_indices