1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# ---------------------------------- Cluster -----------------------------------
#配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: elasticsearch
# ------------------------------------ Node ------------------------------------
#节点名
node.name:es01
#node.master     node.data     描述
#true          true       默认节点,可以为master,也可以存储数据
#false          true      节点永远不会成为master,只能保存数据,这种集群的主力
#true          false     该节点仅用作主节点:不存储任何数据并具有可用资源。 这将是您的集群的协调员
#false          false     成为client node,该节点用作搜索负载平衡器(从节点获取数据,聚合结果等)相当于给集群加内存
node.master:  true
node.data:  true
#Ingest Node(提取节点):能执行预处理管道,有自己独立的任务要执行,类似于 logstash 的功能,不负责数据也不负责集群相关的事务  
#如果你不想这种设置的话,可以修改配置文件为:node.ingest: false
#一般情况下建议在master node和data node上面禁用它,以防止出现问题并保护集群。 而client node是最好的候选者
node.ingest:  false
#Tribe Node(部落节点):协调集群与集群之间的节点,该部族节点支持跨集群搜索,并将在弹搜索7.0中删除
#Coordinating Node(协调节点):每一个节点都是一个潜在的协调节点,且不能被禁用,协调节点最大的作用就是将各个分片里的数据汇集起来一并返回给客户端
#因此 ES 的节点需要有足够的 CPU 和内存去处理协调节点的 gather 阶段。
#设置默认索引分片个数,默认为5片。分片数最好为节点数的倍数,最好不好超过三倍
#index.number_of_shards: 5 此设置在5.0之后就不用了
#node settings must not contain any index level settings
#Since elasticsearch 5.x index level settings can NOT be set on the nodes 
#configuration like the elasticsearch.yaml, in system properties or command line 
#arguments.
#设置默认索引副本个数,默认为1个副本。副本用来应对不断攀升的吞吐量以及确保数据的安全性及查询效率
#index.number_of_replicas: 1 此设置在5.0之后就不用了
#注意:以上两个参数需要合理分配,一旦索引创建完成后shards(分片数)无法更改,除非重建索引。
#MAX分片数:Max number of nodes = Number of shards * (number of replicas +1);如果你计划用10个分片和2个分片副本,那么最大的分片数是30;
#MAX分片数越多,查询更快,每个分片都是独立的Lucene索引,更多的分片代表在较小的索引中进行操作。
#分片数(shard)决定了写操作的效率,MAX分片数决定了读操作。过多的分片同时也带了额外的开销:分发搜索命令到每个分片以及分片结果的合并。
# ----------------------------------- Paths ------------------------------------
#设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开。
#例:
#path.data: /path/to/data1,/path/to/data2 
path.data:  /path/elasticsearch
#设置日志文件的存储路径,默认是es根目录下的logs文件夹
path.logs:  /var/logs/elasticsearch
# ----------------------------------- Memory -----------------------------------
#锁定物理内存地址,防止elasticsearch内存被交换出去,也就是避免es使用swap交换分区。
#因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM 和 ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。
#同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过`ulimit -l unlimited`命令
bootstrap.memory_lock:  true
# ---------------------------------- Network -----------------------------------
#为es设置ip绑定
network.host: 192.168.0.1
#设置对外服务的http端口,默认为9200
# 注意:在同一个服务器中启动多个es节点的话,默认监听的端口号会自动加1:例如:9200,9201,9202...
http.port: 9200
# --------------------------------- Discovery ----------------------------------
# 当启动新节点时,通过这个ip列表进行节点发现,组建集群
# 默认节点列表:
# 127.0.0.1,表示ipv4的回环地址。
# 注意:如果是发现其他服务器中的es服务,可以不指定端口[默认9300],如果是发现同一个服务器中的es服务,就需要指定端口了。
discovery.zen. ping .unicast.hosts: [ "192.168.0.1" "192.168.0.2" "192.168.0.3" ]
# 通过配置这个参数来防止集群脑裂现象 (集群总节点数量/2)+1
discovery.zen.minimum_master_nodes: 2
# ---------------------------------- Gateway -----------------------------------
# 一个集群中的N个节点启动后,才允许进行数据恢复处理,默认是1
gateway.recover_after_nodes: 3
# ---------------------------------- Various -----------------------------------
# 在一台服务器上禁止启动多个es服务
# node.max_local_storage_nodes: 1
# 设置是否可以通过正则或者_all删除或者关闭索引库,默认true表示必须需要显式指定索引库名称
# 生产环境建议设置为true,删除索引库的时候必须显式指定,否则可能会误删索引库中的索引库
# action.destructive_requires_name: true