ElasticSearch 各模块及配置项介绍

ES模块介绍

        ElasticSearch包含模块由集群管理Cluster分片管理Shards副本管理Replicas恢复管理Recovery数据源管理River持久化存储管理Gateway节点自动发现管理Discovery.zen交互模块Transport

模块 说明
Cluster                                                                     代表集群,集群中有多个节点,其中有一个为主节点,主节点是通过选举产生,主从节点是对于集群内部来说的。对集群外部来说,ES在逻辑上是个整体,与任何一个节点的通信和与整个es集群通信是等价的。
Shards 代表索引分片,es把一个完整的索引分成多个分片,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
Replicas 代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。
Recovery 代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。
River 代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中。
Gateway 代表es索引的持久化存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到硬盘。当这个es集群关闭再重新启动时就会从gateway中读取索引数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。
discovery.zen 代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。
Transport 代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。

集群配置

cluster.name确定集群名称,当elasticsearch集群在同一个网段中,elasticsearch会自动的找到具有相同cluster.name的elasticsearch服务。

cluster.name: clustertest

节点配置

名称

节点名称同理,可自动生成,也可手动配置。

node.name: "Franz Kafka"

主从配置

允许一个节点是否可以成为一个master节点,es是默认集群中的第一台机器为master,如果这台机器停止就会重新选举master.

数据节点

node.master: true # 允许该节点存储数据(默认开启)

node.data: true # 配置数据节点

支持三种配置高性能集群拓扑结构的模式,如下:

# 1. 节点从不可选举为主节点,只用来存储数据,可作为负载器 
node.master: false 
node.data: true 

# 2. 让节点成为主节点,且不存储任何数据,并保有空闲资源,可作为协调器 
node.master: true 
node.data: false 

# 3. 让节点既不成为主节点,又不成为数据节点,那么可将他作为搜索器,从节点中获取数据,生成搜索结果等 
node.master: false 
node.data: false 

查看集群健康情况

http://localhost:9200/_cluster/health

http://localhost:9200/_nodes

索引配置

index.number_of_shards: 3 #设置索引的分片数,默认为3,创建后不可修改

index.number_of_replicas: 2 # 设置索引的副本数,默认为2,可通过API修改

最佳实践:如果服务器够多,可以将分片提高,尽量将数据平均分布到大集群中,增加副本数量可以有效的提高搜索性能。

路径配置

path.conf: /path/to/conf # 配置文件存储位置

path.data: /path/to/data # 数据存储位置(单个目录设置)

path.data: /path/to/data1,/path/to/data2 # 多个数据存储位置

path.work: /path/to/work # 临时文件的路径

path.logs: /path/to/logs # 日志文件的路径

path.plugins: /path/to/plugins# 插件安装路径

网络配置

network.bind_host: 192.168.0.1 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0

network.publish_host: 192.168.0.1 # 设置其它节点和该节点交互的ip地址

network.host: 192.168.0.1 #同时设置bind_host和publish_host两个参数

transport.tcp.port: 9300 # 设置节点间交互的tcp端口,默认是9300

transport.tcp.compress: true # 设置是否压缩tcp传输时的数据,默认为false,不压缩

http.port: 9200# 设置对外服务的http端口,默认为9200

http.max_content_length: 100mb # 设置请求内容的最大容量,默认100mb

http.enabled: false# 使用http协议对外提供服务,默认为true,开启

你可能感兴趣的:(ElasticSearch 各模块及配置项介绍)