ES能够轻松地、高效地扩展,当处理大量的数据或者请求的时候,这一点是很是重要的。
使用集群时须要修改的配置
1.在elasticsearch.yml中指定集群的名称-这是ES具体选项所在的主要配置文件
2.在logging.yml中编辑日志选项-日志配置文件包括log4j的日志选项,ES使用这个库来记录日志。
3.在环境变量或elasticsearch.in.sh中调整内存设置-这个文件用于配置ES所运行的Java虚拟机(JVM)vim
解压安装包后,在此路径下elasticsearch-2.3.2/config有一elasticsearch.yml文件。
默认状况下,新的节点经过多播发现已有的集群-经过向主机发送ping请求,这些主机侦听某个特定的多播地址。若是发现细腻的集群并且有一样的集群名称,新的节点就会加入他们。须要定制化集群的名称,防止默认配置的实例加入到集群中。在elasticsearch.yml文件中找到cluster.name,修改value值便可
cluster.name: Feng-cluster
修改完配置文件后,重启ES,control-c中止ES,在bin/elasticsearch启动
注意:每行配置前必定不能带有空格,不然启动失败
若是已经索引了一些数据,在修改了集群名称重启后,会发现没有任何数据了,这是由于数据存储的目录包含集群的名称,因此能够将集群名称改回去而后再次重启,找回以前的索引数据。缓存
ES日志记录经过3类文件组织
(1) 主要日志(cluster-name.log):在这里将发现ES运行时所发生一些的综合信息。如:某个查询失败或一个新的节点加入集群
(2) 慢搜索日志(cluster-name_index_search_slowlog.log):当某个查询运行得很慢时,ES在这里进行记录。默认状况下,若是一个查询花费时间多于半秒,将在这里写入一条记录
(3) 慢索引日志(cluster-name_index_indexing_slowlog.log):这和慢搜索日志相似,默认状况下,若是一个索引操做花费的时间多于半秒,将在这里写入一条记录。
日志默认级别是INFO,将会写入全部严重级别是INFO或更高的事件。服务器
做为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=100Melasticsearch
实际生产中分配多少内存
若是在服务器上只运行ES,刚开始将ES_HEAP_SIZE设置为内存总量的一半。若是其余的应用程序须要不少的内存,尝试将这个值设置的更小。另外一半内存用于操做系统的缓存,能够更快速地访问所存储的数据。性能