?1.虚拟内存
在linux系统上,elasticsearch默认使用hybrid mmapfs / niofs来存储索引文件,因此操作系统主要会通过mmap来限制存储的空间,因此如果存储空间满了,那么会抛出异常,我们可以使用如下命令来更改设置
sysctl -w vm.max_map_count=262144
当然我们还可以修改/etc/sysctl.conf配置文件修改上述参数
注意在linux下我们一般会设置swap,但是设置swap会对elasticsearch的node性能产生影响,因此建议把swap关闭.
第二种方案也可以设置sysctl.conf中vm.swappiness需要设置为1
第三种方案可以在elasticsearch.yml配置文件修改bootstrap.mlockall:true
设置完之后,我们可以使用如下命令,查看bootstrap.mlockall是否生效
curl http://localhost:9200/_nodes/process?pretty
2.配置elasticsearch
2.1在elasticsearch.yml中我们可以设置
path: logs:/var/logs/elasticsearch data:/var/data/elasticsearch plugins:/var/data/plugins conf:/etc/conf
因此我们可以看出我们将日志输出到/var/logs/elasticsearch,将索引数据保存在/var/data/elasticsearch目录下,插件加载的位置设置为/var/data/plugins,配置文件放置位置设置为/etc/conf。
当然我们还能直接path.logs:/var/logs/elasticsearch这样配置
2.2配置集群名称,节点名称
cluster: name:mycluster
node: name:mynode
上述设置了集群名称为mycluster,当前elasticsearch的节点名称为mynode
2.3设置索引存储方式
index: store: type:memory
在这里我们设置ile索引的存储方式是内存,其实这样设置在yml文件中不是一个很好的配置,因为配置后,会对之后我们创建的所有索引都会以memory来存储,因此最好的设置是使用http接口对指定的数据库进行配置
比如:
$ curl -XPUT http://localhost:9200/kimchy/ -d ‘ index : store: type: memory ‘
也就是对数据库kimchy设置存储方式为memory。
3.配置http接口的数据操作。
3.1一般我们会通过http接口api形式对索引数据进行crud操作,这个时候我们要配置elasticsearch.yml中的http模块。
http.enabled:true