Elasticsearch-配置

ES-配置

ES可以轻松地、高效地扩展,当处理大量的数据或者请求的时候,这一点是非常重要的。
使用集群时需要修改的配置
1.在elasticsearch.yml中指定集群的名称-这是ES具体选项所在的主要配置文件
2.在logging.yml中编辑日志选项-日志配置文件包括log4j的日志选项,ES使用这个库来记录日志。
3.在环境变量或elasticsearch.in.sh中调整内存设置-这个文件用于配置ES所运行的Java虚拟机(JVM)

1. 指定集群名称

解压安装包后,在此路径下elasticsearch-2.3.2/config有一elasticsearch.yml文件。
默认情况下,新的节点通过多播发现已有的集群-通过向主机发送ping请求,这些主机侦听某个特定的多播地址。如果发现细腻的集群而且有同样的集群名称,新的节点就会加入他们。需要定制化集群的名称,防止默认配置的实例加入到集群中。在elasticsearch.yml文件中找到cluster.name,修改value值即可
cluster.name: Feng-cluster
修改完配置文件后,重启ES,control-c停止ES,在bin/elasticsearch启动
注意:每行配置前一定不能带有空格,否则启动失败
如果已经索引了一些数据,在修改了集群名称重启后,会发现没有任何数据了,这是因为数据存储的目录包含集群的名称,所以可以将集群名称改回去然后再次重启,找回之前的索引数据。

2. 通过logging.yml指定详细日志记录

ES日志记录通过3类文件组织
(1) 主要日志(cluster-name.log):在这里将发现ES运行时所发生一些的综合信息。如:某个查询失败或一个新的节点加入集群
(2) 慢搜索日志(cluster-name_index_search_slowlog.log):当某个查询运行得很慢时,ES在这里进行记录。默认情况下,如果一个查询花费时间多于半秒,将在这里写入一条记录
(3) 慢索引日志(cluster-name_index_indexing_slowlog.log):这和慢搜索日志类似,默认情况下,如果一个索引操作花费的时间多于半秒,将在这里写入一条记录。
日志默认级别是INFO,将会写入所有严重级别是INFO或更高的事件。

3. 调整JVM设置

作为Java的应用程序,ES在一个JVM中运行。JVM和物理机器相似,拥有自己的内存。JVM有其自己的配置,而其最重要的一点是有多少内存可以使用。选择正确的内存设置对于ES的性能和稳定性而言非常重要。
ES使用的大部分内存称为 堆(heap)。默认的设置让ES为堆分配了256MB的初始内存,然后最多扩展到1GB。如果搜索和索引操作需要多于1GB的内存,那些操作将会失败,而且日志中会出现超出内存(out-of-memory)错误。反之,如果在只有256MB内存的设备上运行ES,默认的设置可能就分配了太多的内存。
为了修改默认的值,可以使用ES_HEAP_SIZE环境变量。如下
vim bin/elasticsearch.in.sh
在#!/bin/sh后面加入ES_HEAP_SIZE=100M

实际生产中分配多少内存
如果在服务器上只运行ES,刚开始将ES_HEAP_SIZE设置为内存总量的一半。如果其他的应用程序需要很多的内存,尝试将这个值设置的更小。另一半内存用于操作系统的缓存,可以更快速地访问所存储的数据。

猜你喜欢

转载自www.cnblogs.com/EnzoDin/p/11042663.html