ElasticSearch 共有两个配置文件,都位于 config 目录下,分别是 elasticsearch.yml 和 logging.yml,其中,elasticsearch.yml 是全局配置文件,用于在服务器级别对 ElasticSearch 进行配置。ElasticSearch 的配置选项分为静态设置和动态设置两种,静态设置必须在节点级别(node-level)设置,或配置在 elasticsearch.yml 配置文件中,或配置在环境变量中,或配置在命令行中,在节点启动之后,静态设置不能修改。集群的名字和节点的名称:cluster.name 和 node.name,这两个配置项是静态配置项,不能在集群运行时修改,而动态配置项可以在集群运行时通过RESTful API进行修改。
静态理解为修改在硬盘上存的持久化文件,运行ES时载入内存
动态理解为修改在内存中的数据,重启服务后不会保存
一、配置集群的标识(cluster.name)
通过 cluster.name 属性配置集群的名字,用于唯一标识一个集群,不同的集群,其 cluster.name 不同,集群名字相同的所有节点自动组成一个集群。如果不配置该属性,默认值是:elasticsearch。当启动一个节点时,该节点会自动寻找相同集群名字的主节点;如果找到主节点,该节点加入集群中;如果未找到主节点,该节点成为主节点。
注意:在 yml 中对 Elasticsearch 进行全局配置,要注意配置选项的格式:option: value,在“:”之后保留一个空格,之后是选项值;配置选项不要有前置空格。
配置集群的名字为 firstcluster
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: firstcluster
#
二、节点的配置
ElasticSearch 集群中,共有四种节点类型:候选主节点(Master-eligible),数据节点(Data),吸收节点(Ingest)和部落节点(Tribe)。
1.候选主节点
在一个集群中,主节点只有一个,负责管理集群,执行集群级别的操作,比如创建或删除索引,跟踪集群的组成节点的状态,决定将分片分配的目标节点,对集群来说,一个稳定的主节点十分重要。集群会自动进行健康检测,当主节点出现故障时,集群中的候选主节点进行选举,在选举结束之后,一个候选主节点被选举成为新的主节点,实现集群故障的自动转移。候选主节点具有投票权,其他节点没有投票权。
2.数据节点
数据节点包含已编制索引的文档的分片,数据节点处理与数据相关的操作,如CRUD,搜索和聚合
3.预处理节点
预处理节点可以执行由一个或多个预处理器组成的预处理流水线。根据预处理器执行的操作类型和所需资源,具有专用预处理节点可能是有意义的,这些节点仅执行此特定任务。
4.部落节点
可以连接到多个集群并在所有连接的集群中执行搜索和其他操作。‘
默认情况下,ElasticSearch将当前节点配置为同时作为候选主节点和数据节点,而且它可以通过摄取管道预处理文档。这对于小型集群非常方便,但随着集群的增长,考虑将候选主节点与数据节点分开变得很重要
- node.data:true 配置该节点是数据节点,用于保存数据,执行数据相关的操作(CRUD,Aggregation);
- node.master:true 配置该节点有资格被选举为主节点(候选主节点),用于处理请求和管理集群。如果节点没有资格成为主节点,那么该节点永远不可能成为主节点;如果节点有资格成为主节点,只有在被其他候选主节点认可和被选举为主节点之后,才真正成为主节点。
配置当前节点只保存数据: