当前位置:文档之家› ElasticSearch2.x配置

ElasticSearch2.x配置

整理配置后 ,
此处配置为集群配置
总共三个节点 ..
此处使用默认集群管理 zen ..

https://www.doczj.com/doc/234432848.html,: clicoy
node.master: true
node.data: true
index.number_of_shards: 3
index.number_of_replicas: 1
#锁定内存
bootstrap.mlockall: true
http.port: 9200
transport.tcp.port: 9300
==================== 集群 (Cluster)===============================
指定集群名称 .
https://www.doczj.com/doc/234432848.html,: elasticsearch

====================节点(Node)=================================
1. 指定节点名称
https://www.doczj.com/doc/234432848.html,: "clicoy"
2. 指定该节点是否为 master
node.master: true
3. 设置该节点是否允许存放数据
node.data: true
官方给出三种配置建议
1) 希望该节点不会成为master节点,仅仅用来存储数据, 即workhorse(重负荷机器)机器.
node.master: false
node.data: true
2) 将该节点只当做master server 使用,不存储任何数据,在集群中为coordinator(协调者)身份.
node.master: true
node.data: false
3) 将该节点当做"搜索负载均衡器" , 不存储数据,也不作为coordinator.
node.master: false
node.data: false
4. 一个节点可以附带一些普通的属性,这些属性可以在后面的自定义分片分配过滤或者allocation awareness中使用。 一个属性就是一个简单的键值对,类似于node.key: value, 这里有一个例子:
node.rack: rack314
5. 默认的,多个节点允许从同一个安装位置启动。若想禁止这个特性,按照下面所示配置:
node.max_local_storage_nodes: 1

====================索引(Index)=================================
1. 设置一个索引的分片数量(默认为5)
index.number_of_shards: 5
2. 设置一个索引的副本数量(默认为1)
index.number_of_replicas: 1
3. 注意,为了使用小的索引在本地机器上开发,禁用分布式特性是合理的做法。
index.number_of_shards: 1
index.number_of_replicas: 0
下面为配置文件中配置建议.
这些设置会直接影响索引和查询操作的在集群中的性能。假如你有足够的机器来放分片和副本,
最佳实践是:
1. 索引分片分的多一些,可以提高索引的性能,并且把一个大的索引分布到机器中去。
2. 副本分片分的多一些,可以提高搜索的性能,并且提高集群的可用性。
"number_of_shards"对一个索引来说只能配置一次
"number_of_replicas"在任何时候都可以增加或减少,通过Index Update Settings(索引更新配置)API可以做到这一点。
ElasticSearch 会维护load balancin(负载均衡),relocating(重定位),合并来自各个节点的结果等等。
你可以实验不同的配置来进行优化。
使用Index Status(索引状态)API ()查看索引状态

====================路径(Paths)=================================
1. 包含配置(这个文件和logging.yml)的目录的路径
path.c

onf: /path/to/conf
2. 存储这个节点的索引数据的目录的路径
path.data: /path/to/data
3. 可以随意的包含不止一个位置,这样数据会在文件层跨越多个位置(a la RAID 0),创建时会优先选择大的剩余空间的位置
path.data: /path/to/data1,/path/to/data2
4. 临时文件的路径
path.work: /path/to/work
5. 日志文件的路径
path.logs: /path/to/logs
6. 插件安装路径
path.plugins: /path/to/plugins
======================插件(plugins ) =================================
如果当前结点没有安装下面列出的插件,结点不会启动
plugin.mandatory: mapper-attachments,lang-groovy

======================内存(Memory) ======================
1. 当JVM开始swapping(换页)时ElasticSearch性能会低下,你应该保证它不会换页,设置这个属性为true来锁定内存
bootstrap.mlockall: true

2. 确保ES_MIN_MEM和ES_MAX_MEM环境变量设置成了同一个值,确保机器有足够的内存来分配
给ElasticSearch,并且保留足够的内存给操作系统
你应该确保ElasticSearch的进程可以锁定内存,例如:使用`ulimit -l unlimited`

====================== Network(网络) 和 HTTP ======================
1. 默认的ElasticSearch把自己和0.0.0.0地址绑定,HTTP传输的监听端口在[9200-9300],节点之间通信的端口在[9300-9400]。(范围的意思是说如果一个端口已经被占用,它将会自动尝试下一个端口)
设置一个特定的绑定地址(IPv4 or IPv6):
network.bind_host: 192.168.0.1
2. 设置其他节点用来与这个节点通信的地址。如果没有设定,会自动获取。必须是一个真实的IP地址。
network.publish_host: 192.168.0.1
3. 'bind_host'和'publish_host'都设置
network.host: 192.168.0.1
4. 为节点之间的通信设置一个自定义端口(默认为9300)
transport.tcp.port: 9300
5. 为所有的节点间的通信启用压缩(默认为禁用)
https://www.doczj.com/doc/234432848.html,press: true
6. 设置一个监听HTTP传输的自定义端口
http.port: 9200
7. 设置一个自定义的允许的内容长度
http.max_content_length: 100mb
8. 完全禁用HTTP
http.enabled: false

======================Gateway ======================
1. Gateway支持持久化集群状态。状态的每一个改变(例如添加一个索引)将会被存储在gateway,当集群第一次启动时,它会从gateway中读取它的状态。
还有多种类型的gateway实现。详情见

2. 默认的gateway类型是 "local" gateway(推荐)
gateway.type: local

3. 下面的配置控制怎样以及何时启动一整个集群重启的初始化恢复过程
(当使用shard gateway时,是为了尽可能的重用local data(本地数据))
一个集群中的N个节点启动后,才允许进行恢复处理
gateway.recover_after_nodes: 1
4. 设置初

始化恢复过程的超时时间,超时时间从上一个配置中配置的N个节点启动后算起
gateway.recover_after_time: 5m

5. 设置这个集群中期望有多少个节点。一旦这N个节点启动(并且recover_after_nodes也符合),立即开始恢复过程(不等待recover_after_time超时)
gateway.expected_nodes: 2
====================== Recovery Throttling (节点恢复限流阀) ======================
这些配置允许在初始化恢复,副本分配,再平衡,或者添加和删除节点时控制节点间的分片分配
设置一个节点的并行恢复数
1. 初始化恢复期间
cluster.routing.allocation.node_initial_primaries_recoveries: 4
2. 添加/删除节点,再平衡等期间
cluster.routing.allocation.node_concurrent_recoveries: 2
3. 设置恢复时的吞吐量(例如,100mb,默认没有上限)
indices.recovery.max_size_per_sec: 0
4. 设置当一个分片从对等点恢复时能够打开的并发流的上限
indices.recovery.concurrent_streams: 5

====================== Discovery(探查) ======================
探查机制能够保障一个集群中的节点能被找到,并且主节点能够被选举出来。
默认的方式为多播。

1. 这个选项用来设置一个节点可以看到其他N个在集群中具有可操性的并且具有当选主节点资格的节点对于大的集群(大于3个节点),这个选项应该设置成一个高一点的值(2-4)
discovery.zen.minimum_master_nodes: 1
2. 设置在探查过程中从其他节点返回ping的回应的等待时间, 在一个低速或者拥堵的网络环境中这个选项应该设置的大一些,这样可以降低探查失败的可能性。
discovery.zen.ping.timeout: 3s

# 详情见

3. 利用单播探查,我们可以显示的指定哪些节点在探查集群过程中会被用到。当多播不可用,或者需要约束集群的通信时可以使用单播探查。
_1. 禁用多播探查(默认可用)
discovery.zen.ping.multicast.enabled: falsed
_2. 这是一个集群中的主节点的初始列表,当节点(主节点或者数据节点)启动时使用这个列表进行探查
discovery.zen.ping.unicast.hosts: ["elastic1", "elastic2"]
discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
为了执行探查EC2探查允许使用AWS EC2 API
想要启用EC2探查功能,你必须安装cloud-aws插件
详情见
详情见
====================== Slow Log(慢日志)======================
# Shard level query and fetch threshold logging.

#index.search.slowlog.threshold.query.warn: 10s
#https://www.doczj.com/doc/234432848.html,: 5s
#index.search.slowlog.threshold.query.debug: 2s
#index.search.slowlog.th

reshold.query.trace: 500ms


#index.search.slowlog.threshold.fetch.warn: 1s
#https://www.doczj.com/doc/234432848.html,: 800ms
#index.search.slowlog.threshold.fetch.debug: 500ms
#index.search.slowlog.threshold.fetch.trace: 200ms


#index.indexing.slowlog.threshold.index.warn: 10s
#https://www.doczj.com/doc/234432848.html,: 5s
#index.indexing.slowlog.threshold.index.debug: 2s
#index.indexing.slowlog.threshold.index.trace: 500ms


################################## GC Logging ################################


#monitor.jvm.gc.ParNew.warn: 1000ms
#https://www.doczj.com/doc/234432848.html,: 700ms
#monitor.jvm.gc.ParNew.debug: 400ms


#monitor.jvm.gc.ConcurrentMarkSweep.warn: 10s
#https://www.doczj.com/doc/234432848.html,: 5s
#monitor.jvm.gc.ConcurrentMarkSweep.debug: 2s

相关主题
文本预览
相关文档 最新文档